数组遍历操作
-
forEach
该办法等同于 for 循环,其没有返回值
构造:arr.forEach(回调函数, 回调函数 this 的值) 第二个参数当回调函数是箭头函数时有效用法:arr.forEach(function(item,index,arr){ // 外面的 function 是一个回调函数 // item: 数组中的每一项 // index:item 对应的下标索引值 // arr: 就是调用该办法的数组自身 });
-
map
该办法应用和 forEach 大致相同,该办法有返回值,返回一个新数组,工作中须要对数组的每一项进行操作获取操作后的新数组时能够应用此办法
构造:arr.map(回调函数, 回调函数 this 的值)用法:const arr = [1,2,3]; const newArr= arr.map((item,index,arr) => {return item * 2;}); console.log(newArr); // [2,4,6] console.log(arr); // [1,2,3] 注:当数组元素类型为援用类型时会扭转原数组,因为值类型入参是复制,援用类型是指向同一对象 const arr2 = [{num:1},{num:2},{num:3}]; const newArr2 = arr2.map((item,index,arr) => { item.num2 = 10; return item; }); console.log(newArr2); // [{num: 1, num2: 10},{num: 2, num2: 10},{num: 3, num2: 10}] console.log(arr2); // [{num: 1, num2: 10},{num: 2, num2: 10},{num: 3, num2: 10}]
-
filter
该办法有返回值,返回一个符合条件元素组成的新数组, 工作中须要过滤出符合条件的数组元素时能够应用此办法
构造:arr.filter(回调函数, 回调函数 this 的值)用法:const arr = [1,2,3]; const newArr= arr.filter((item,index,arr) => {return item > 2;}); console.log(newArr); // [3]
-
some
该办法判断数组中有没有符合条件的项 (只有有, 就返回 true),如果一个都没有才返回 false,原理相似于或运算
构造:arr.some(回调函数, 回调函数 this 的值)用法:const arr = [1,2,3]; const flag = arr.some((item,index,arr) => {return item > 2;}); console.log(flag); // true const flag2= arr.some((item,index,arr) => {return item > 4;}); console.log(flag2); // false
-
every
该办法判断数组中所有的项是否满足要求,如果全都满足才返回 true,否则返回 false,原理相似于与运算
构造:arr.every(回调函数, 回调函数 this 的值)用法:const arr = [1,2,3]; const flag = arr.every((item,index,arr) => {return item > 0;}); console.log(flag); // true const flag2= arr.every((item,index,arr) => {return item > 1;}); console.log(flag2); // false
数组增删改操作
- push
该办法能够在数组的最初面减少一个或多个元素,返回值为增加新元素后数组的长度
构造:arr.push(值)
例:const arr = [1,2,3];
const arrLength = arr.push(4,5,6);
console.log(arr); // [1,2,3,4,5,6]
console.log(arrLength); // 6