js数组方法
来源:互联网 发布:windows 注册服务 编辑:程序博客网 时间:2024/06/03 20:17
01.找处元素item在给定数组arr中的位置
function indexOf1(arr, item) { return arr.indexOf(item);};function indexOf2(arr,item){ var index = -1; arr.forEach(function (res,index) { if(res===item&&index===-1){ index=i; } }); return index;};function indexOf3(arr,item) { var len = arr.length; for(var i = 0;i<len;i++){ if(arr[i]===item){ return i; } } return -1;};
02.计算数组arr中所有元素的和
function sum1 (arr) { return arr.reduce(function (p, c, i, a) { //1--:34[3,4,5,8] //2--:75[3,4,5,8] //3--:128[3,4,5,8] //p每次计算的结果相当于sum+=c中的sum; //而c每次计算的结果相当于sum+=c中的c; //i为索引 return p + c; });};function sum2 (arr) { var s = 0; arr.forEach(function (value, index, arr) { s += value; }); return s;};function sum3 (arr) { return eval(arr.join("+"));};
03.移除数组arr中与item相等的元素,返回新数组
function remove1 (arr, item) { //splice(index,howmany,item1...itemx); //index:规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。 //howmany:要删除的项目数量。如果设置为 0,则不会删除项目。 var newArr = arr.splice(0); for (var i = 0; i < newArr.length; i++) { if (newArr[i] == item) { newArr.splice(i, 1); i--; } } return newArr;};function remove2 (arr, item) { var newArr = []; for (var i = 0; i < arr.length; i++) { if (arr[i] == item) { newArr.push(arr[i]); } } return newArr;};function remove3 (arr, item) { return arr.filter(function (val) { return val != item; });};
04.移除数组arr中与item相等的元素,返回原数组
//splice(index,len,[item])var arr1 = ['a', 'b', 'c', 'd'];//remove--item不设置arr1.splice(1, 1);console.log(arr1);//Array [ "a", "c", "d" ]arr1.splice(1, 2);console.log(arr1);//Array [ "a" ]//replace--item为替换值var arr2 = ['a', 'b', 'c', 'd'];arr2.splice(1, 1, 'ttt');console.log(arr2);//Array [ "a", "ttt", "c", "d" ]arr2.splice(1, 2, 'ddd');console.log(arr2);//Array [ "a", "ddd", "d" ]//add--len设置为0,item为添加值
05.在数组arr末尾添加item,返回新数组
//普通迭代拷贝function append1 (arr,item) { var len = arr.length, newArr = []; for(var i = 0;i < len;i++){ newArr.push(arr[i]); } newArr.push(item); return newArr;};//使用slice浅拷贝+push组合function append2(arr,item) { var newArr = arr.slice(0);//slice(start,end)浅拷贝 newArr.push(item); return newArr;};//使用concat将传入的数组或非数组值与原数组合并,组成一个新的数组并返回function append3(arr,item) { return arr.concat(item);}
06.删除数组arr最后一个元素,返回新数组
//删除数组最后一个元素,返回新数组function truncate1 (arr) { return arr.slice(0,-1);}function truncate2(arr){ var a=[]; a = arr.slice(0); a.pop(arr[arr.length-1]);};
07.在数组arr开头添加item,返回新数组
function prepend1(arr,item){ return [item].concat(arr);}function prepend2(arr,item) { var newArr = [item]; [].push.apply(newArr,arr); return newArr;}function prepend3(arr,item) { var newArr = arr.slice(0); newArr.unshift(item)//等价newArr.splice(0,0,item); return newArr;}
08.删除数组arr第一个元素,返回新数组
function curtail1(arr){ return arr.slice(1);}function curtail2(arr) { return arr.filter(function (value,index) { return index!==0; })};function curtail3(arr) { var newArr = []; [].push.apply(newArr,arr); newArr.shift(); return newArr;};function curtail4(arr) { var newArr = arr.concat(); newArr.shift(); return newArr;};
09.合并数组,返回新数组
function concat1(arr1,arr2) { return arr1.concat(arr2);};function concat2(arr1,arr2) { var newArr = arr1.slice(0); [].push.apply(newArr,arr2); return newArr;};
10.在数组arr的index处添加item,返回新数组
function insert1(arr,item,index){ return arr.slice(0,index).concat(item,arr.slice(index));};function insert2(arr,item,index) { var newArr = arr.concat();//等价于 newArr=arr.slice(0) newArr.splice(index,0,item); return newArr;};function insert3(arr,item,index) { var newArr = []; [].push.apply(newArr,arr); newArr.splice(index,0,item); return newArr;};
11.统计数组arr等于item的元素出现的次数
function count1(arr,item) { var count = arr.filter(function (a) { return a===item;}); return count.length;};function count2(arr,item) { var count = 0; arr.map(function (a) { if(a===item) count++; }); return count;};function count3(arr,item) { var count = arr.reduce(function(p,c){ return c===item?p+1:p; },0); return count;};
12.找出数组arr中重复出现过的元素
function duplicates(arr) { //a数组存放结果,b数组存放arr中每个元素的个数 var a=[],b=[]; for(var i = 0;i<arr.length;i++){ if(!b[arr[i]]){ b[arr[i]]=1; continue; } b[arr[i]]++; } for(var i = 0;i< b.length;i++){ if(b[i]>1){ a.push(i); } } return a;}
本人刚开始学习,有些地方还是不理解,如有错误或建议,请留言!谢谢!!!
阅读全文
0 0
- JS数组方法汇总
- JS数组方法汇总
- JS数组方法汇总
- JS数组方法汇总
- JS数组方法汇总
- JS数组方法整理
- JS数组方法汇总
- JS数组方法介绍
- js数组去重三种方法
- JS数组方法汇总
- js操作数组方法
- js数组方法扩展
- js数组方法
- js常用数组方法
- js数组常用方法
- js数组常用方法
- js数组的方法
- JS数组的方法
- Python爬虫采集CloudBlog网站的文章
- 积分
- QTimer 定时器
- 一个内存池类
- Linux文件的ACL权限
- js数组方法
- SpringMVC框架
- linux服务器状态监控软件-psdash安装教程
- spring快速入门(一)
- H
- android默认的设置修改
- mysql优化
- Android BLE蓝牙4.0开发—Android手机与BLE终端通信
- SPRING 事务控制 (PROPAGATION_NESTED)