标签:实用 start 分享 ase 对象 return nbsp es6 控制
数组函数
(这里的回调函数中的index和arr都可以省略,回调函数后有参数是设置调整this指向的,这里暂时不使用)
- forEach()
- map()— —更新数组
- filter()、includes()、find()、findIndex()— —筛选(删除)数组
- some()、every()— —判断数组
- reduce()— —叠加数组
arr.forEach()
遍历数组全部元素,利用回调函数对数组进行操作,自动遍历数组.length次数,且无法break中途跳出循环
因此不可控
不支持return操作输出,return只用于控制循环是否跳出当前循环
因此难操作成新数组,新值,故不作多分析
示例:
- var arr = [1,2,3,4,5,] ;
- arr.forEach(function(item,index){
- console.log(item);
- });
arr.map()— —更新数组
1、创建新数组
2、不改变原数组
3、输出的是return什么就输出什么新数组
4、回调函数参数,item(数组元素)、index(序列)、arr(数组本身)
5、使用return操作输出,会循环数组每一项,并在回调函数中操作
示例:
- var arr = [1,2,3,4,5] ;
- var newArr = arr.map(function(item,index){
- return item*2 ;
- })
- console.log(newArr);
- console.log(arr);
- var newArr2 = newArr.map(function(item,index){
- return `<li>${item}</li>` ;
-
-
- })
- console.log(newArr2.join(‘‘));
- console.log(newArr);
arr.filter()、includes()、find()、findIndex()— —筛选数组
一、arr.filter()
1、创建新数组
2、不改变原数组
3、输出的是判断为true的数组元素形成的新数组
4、回调函数参数,item(数组元素)、index(序列)、arr(数组本身)
5、使用return操作输出,会循环数组每一项,并在回调函数中操作
示例:
- var arr = [1,2,3,4,5] ;
- var newArr = arr.filter(function(item,index){
- return item>2&&item<5 ;
- })
- console.log(newArr);
- console.log(arr);
二、arr.includes()
只是判断数组是否含有某值,不用return,不用回调函数,输出一个true或false
无用
示例:
- var arr = [1,2,3,4,5] ;
- var new1 = arr.includes(5);
- console.log(new1);
- console.log(arr);
三、arr.find()
1、不创建新数组
2、不改变原数组
3、输出的是一旦判断为true则跳出循环输出符合条件的数组元素
4、回调函数参数,item(数组元素)、index(序列)、arr(数组本身)
5、使用return操作输出,会循环数组每一项,并在回调函数中操作
示例:
- var arr = [1,2,3,4,5] ;
- var new1 = arr.find(function(item,index){
- return item>2&&item<5 ;
- })
- var new2 = arr.find(function(item,index){
- <span style="white-space:pre;"> </span>return item.toString().indexOf(5)>-1 ;<span style="white-space:pre;"> </span>
- })
- console.log(new1);
- console.log(new2)
- console.log(arr);
四、arr.findIndex()— — 与find()相同
1、不创建新数组
2、不改变原数组
3、输出的是一旦判断为true则跳出循环输出符合条件的数组元素序列
4、回调函数参数,item(数组元素)、index(序列)、arr(数组本身)
5、使用return操作输出,会循环数组每一项,并在回调函数中操作
(较无用)
示例:
- var arr = [1,2,3,4,5] ;
- var new1 = arr.findIndex(function(item,index){
- return item>2&&item<5 ;
- })
- var new2 = arr.findIndex(function(item,index){
- return item.toString().indexOf(5)>-1 ;
- })
- console.log(new1);
- console.log(new2)
- console.log(arr);
arr.some()、every()— —判断数组
(不常用)
一、some()
1、不创建新数组
2、不改变原数组
3、输出的是判断为true则马上跳出循环并return成true
4、回调函数参数,item(数组元素)、index(序列)、arr(数组本身)
5、使用return操作输出,会循环数组每一项,并在回调函数中操作
示例:
- var arr = [1,2,3,4,5] ;
- var new1 = arr.some(function(item,index){
- return item>2&&item<5 ;
- })
- var new2 = arr.some(function(item,index){
- return item>5 ;
- })
- console.log(new1);
- console.log(new2);
- console.log(arr);
一、every()— —与some相反
1、不创建新数组
2、不改变原数组
3、输出的是判断为false则马上跳出循环并return成false
4、回调函数参数,item(数组元素)、index(序列)、arr(数组本身)
5、使用return操作输出,会循环数组每一项,并在回调函数中操作
示例:
- var arr = [1,2,3,4,5] ;
- var new1 = arr.every(function(item,index){
- return item>2&&item<5 ;
- })
- var new2 = arr.every(function(item,index){
- return item<10 ;
- })
- console.log(new1);
- console.log(new2);
- console.log(arr);
reduce()— —叠加数组
不一定在数学意义上的叠加计算,这里叠加指:可以利用前遍历操作的结果到下一次遍历使用,重复叠加使用下去
1、创建新数组
2、不改变原数组
3、输出的是return叠加什么就输出什么 新数组
4、回调函数参数
- pre(第一次为数组第一项,之后为上一操作的结果)
- next(数组的下一项)
- index(next项的序列)
- arr(数组本身)
- 回调函数后的改变第一项参数。(不影响原数组)
5、使用return操作输出,会循环数组每一项,并在回调函数中操作
示例:
- var arr1 = [1,2,3,4,5] ;
- var new1 = arr1.reduce(function(sum,next,index){
- return sum+next ;
-
- })
-
- var arr2 = [[1,2,3],[4,5],[6,7]] ;
- var new2 = arr2.reduce(function(pre,next,index){
- return pre.concat(next);
- })
-
- var arr3 = [{price:10,count:1},{price:15,count:2},{price:10,count:3}];
- var new3 = arr3.reduce(function(pre,next,index){
- return pre+next.price*next.count;
-
-
- },0)
-
- console.log(new1);
- console.log(new2);
- console.log(new3);
-
- console.log(arr1);
- console.log(arr2);
- console.log(arr3);
FOREACH、MAP、FILTER、SOME、EVERY五个数组方法
标签:实用 start 分享 ase 对象 return nbsp es6 控制
原文地址:https://www.cnblogs.com/Marinnn/p/9147711.html