本篇文章给大家带来的内容是关于js中对数组进行操作的方法总结(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
1.找出元素 item 在给定数组 arr 中的位置
function indexOf(arr, item) { if (Array.prototype.indexOf){ //判断原型中是否支持该方法 return arr.indexOf(item); } else { for (var i = 0; i2.计算给定数组 arr 中所有元素的总和
//forEach遍历:function sum(arr) { var s = 0; arr.forEach(function(val, idx, arr) { s += val; }, 0); return s;};//eval:function sum(arr) { return eval(arr.join("+"));};登录后复制
3.移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组
//splice()function remove(arr,item){ var newarr = arr.slice(0); for(var i=0;i4.移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回
//splicefunction removeWithoutCopy(arr, item) { for(var i=0; i5.在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组
//普通的迭代拷贝var append = function(arr, item) { var length = arr.length, newArr = []; for (var i = 0; i6.删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组
//利用slicefunction truncate(arr) { return arr.slice(0,-1);}//利用filterfunction truncate(arr) { return arr.filter(function(v,i,ar) { return i!==ar.length-1; });}//利用push.apply+popfunction truncate(arr) { var newArr=[]; [].push.apply(newArr, arr); newArr.pop(); return newArr;}//利用join+split+pop 注意!!!:数据类型会变成字符型function truncate(arr) { var newArr = arr.join().split(','); newArr.pop(); return newArr;}登录后复制
7.在数组 arr 开头添加元素 item。不要直接修改数组 arr,结果返回新的数组
//利用concatfunction prepend(arr, item) { return [item].concat(arr);}//使用push.applyfunction prepend(arr, item) { var newArr=[item]; [].push.apply(newArr, arr); return newArr;}//利用slice+unshift/splicefunction prepend(arr, item) { var newArr=arr.slice(0); newArr.unshift(item);//newArr.splice(0,0,item); return newArr;}登录后复制
8.删除数组 arr 第一个元素。不要直接修改数组 arr,结果返回新的数组
//利用slicefunction curtail(arr) { return arr.slice(1);}//利用filterfunction curtail(arr) { return arr.filter(function(v,i) { return i!==0; });}//利用push.apply+shiftfunction curtail(arr) { var newArr=[]; [].push.apply(newArr, arr); newArr.shift(); return newArr;}登录后复制
9.合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组
//利用concatfunction concat(arr1, arr2) { return arr1.concat(arr2);}//利用slice+push.applyfunction concat(arr1, arr2) { var newArr=arr1.slice(0); [].push.apply(newArr, arr2); return newArr;}//利用slice+pushfunction concat(arr1, arr2) { var newArr=arr1.slice(0); for(var i=0;i10.在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组
//利用slice+splicefunction insert(arr, item, index) { var newArr=arr.slice(0); newArr.splice(index,0,item); return newArr;}//利用push.apply+splicefunction insert(arr, item, index) { var newArr=[]; [].push.apply(newArr, arr); newArr.splice(index,0,item); return newArr;}登录后复制
11.统计数组 arr 中值等于 item 的元素出现的次数
//filter()-->利用指定的函数确定是否在返回的数组中包含某一项 function count(arr, item) { var count = arr.filter(function(a) { return a === item; //返回true的项组成的数组 }); return count.length; } //map()-->对数组中的每一项进行给定函数, //返回每次函数条用的结果组成的数组; function count(arr, item) { var count = 0; arr.map(function(a) { if(a === item) { count++; } }); return count; }//forEach()-->对数组中的每一项运行传入的函数 function count(arr, item) { var count = 0; arr.forEach(function(a) { a === item ? count++ : 0; }); return count; }登录后复制
12.找出数组 arr 中重复出现过的元素
//两次遍历function duplicates(arr) { //声明两个数组,a数组用来存放结果,b数组用来存放arr中每个元素的个数 var a = [],b = []; //遍历arr,如果以arr中元素为下标的的b元素已存在,则该b元素加1,否则设置为1 for(var i = 0; i 1){ a.push(i); } } return a; } //先排序,如果后一个与前一个相等且未保存,则保存。 function duplicates(arr) { var a=arr.sort(),b=[]; for(var i in a){ if(a[i]==a[i-1] && b.indexOf(a[i])==-1) b.push(a[i]); } return b;}//先排序然后再判断function duplicates(arr) { var new_arr = arr.sort();//先把arr排序 var res = [] ;//目标容器 for( var i = 0 ; i13.为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组
function square(arr) { //声明一个新的数组存放结果 var a = []; arr.forEach(function(e){ //将arr中的每一个元素求平方后,加入到a数组中 a.push(e*e); }); return a; } // 使用map function square(arr) { return arr.map(function(e) { return e * e; }) } // ES6箭头函数版 const square = arr => arr.map(e => e * e);登录后复制
14.在数组 arr 中,查找值与 item 相等的元素出现的所有位置
//forEachfunction findAllOccurrences(arr, target) { var a=[]; arr.forEach(function(e,index){ if(e==target) a.push(index); }) return a;}function findAllOccurrences(arr, target) {var temp = []; arr.forEach(function(val,index){ val !== target || temp.push(index); }); return temp;}//filterfunction findAllOccurrences(arr, target) { var result=[]; arr.filter(function(item,index){ return item===target&&result.push(index); }); return result;}登录后复制
相关推荐:
js数组操作方法总结(必看篇)
说明Js数组操作基本方法
以上就是js中对数组进行操作的方法总结(代码)的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2742891.html