js 数组方法小计

Array 使用方法小计

用于检测数组所有元素是否都符合指定条件 every

every() 方法使用指定函数检测数组中的所有元素:
如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
如果所有元素都满足条件,则返回 true
注意: every() 不会对空数组进行检测。
注意: every() 不会改变原始数组。

  var arr = [11, 22, 44, 55, 55]
  var result = arr.every(function (item,index) {
    return item > 10 // 通过条件判断返回true/false。  false不会继续执行。  
    // return truel; 这样也可以,直接返回 true
    // return false; 直接返回 false
  })
  console.log(result) // 结果只有true/false。只有全部满足条件才会返回true,否则就返回false。

检查指定数组中符合条件的所有元素 filter

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。

  var arr = [11, 22, 44, 55, 55]
  var result = arr.filter(function (item, index) {
    return item > 22; // [44, 55, 55] 返回满足条件的元素
    // return true; // [11, 22, 44, 55, 55] 条件为真返回所有的元素
    // return false; // [] 条件为假返回空数组
    // 通过函数返回的true/false, 判断当前元素是否是满足条件的元素,满足则将当前元素返回到新的数组里面
  })
  console.log(result) 

返回通过测试(函数内判断)的数组的第一个元素的值。find

find() 方法为数组中的每个元素都调用一次函数执行:
当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 undefined
注意: find() 对于空数组,函数是不会执行的。
注意: find() 并没有改变数组的原始值。

 使用方法同上,符合条件返回当前符合条件的值,没有则返回undefined

返回传入一个测试条件(函数)符合条件的数组第一个元素位置。findIndex

findIndex() 方法为数组中的每个元素都调用一次函数执行:
当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 -1
注意: findIndex() 对于空数组,函数是不会执行的。
注意: findIndex() 并没有改变数组的原始值。

 使用方法同上,符合条件返回当前元素的索引,没有则返回 -1

调用数组的每个元素,并将元素传递给回调函数。forEach

forEach() 对于空数组是不会执行回调函数的。
forEach()类似于for循环。
通过函数return为空,可以跳过当前元素的循环,执行下一个元素,类似for的continue 。
没有返回值,undefined。

  var arr = [1, 2, 3, 4, 5];
  var result = arr.forEach(function (item) { // 没有返回值,一般不会赋值使用,直接调用
    if (item === 3) {
      return; // 通过return为空,结束当前元素的循环,继续执行对下一个元素的操作。 
    }
    console.log(11, item); // 1,2,4,5
  });
  console.log(22, result) // undefined 没有返回值

按照原始数组元素顺序依次处理元素。map

map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。

  var arr = [1, 2, 3, 4, 5];
  var result = arr.map(function (item, index) {
    return item + 1; // return返回的值就是result接收的值
    // return 1; // 会把数组遍历一次,每次结果都是1
    // return; // return不写会返回undefined
  });
  console.log(result) //  [2, 3, 4, 5, 6]
  // console.log(result) //  [1, 1, 1, 1, 1]
  // console.log(result) //  [undefined, undefined, undefined, undefined, undefined]

接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。reduce

reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
reduce() 可以作为一个高阶函数,用于函数的 compose。
注意: reduce() 对于空数组是不会执行回调函数的。

  var arr = [1, 2, 3, 4, 5];
  var result = arr.reduce(function (total, currentValue) {
    // 第一次的total为数组的第一个元素也就1
    // 第二次之后每次的total都是上一次return返回的值
    return total + currentValue; // 1 3 6 10 15
    // return 2;
  });
  console.log(result) // 15
  // console.log(result) // 2

用于检测数组中的元素是否满足指定条件(函数提供)。some

some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素:
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。
注意: some() 不会对空数组进行检测。
注意: some() 不会改变原始数组。

  var arr = [1, 2, 3, 4, 5];
  var result = arr.some(function (item) {
    return false; // 通过return 的 true/false 返回最后的结果,和every的区别在于有一个true就返回true
  });
  console.log(result)

用于添加或删除数组中的元素。splice

splice() 方法用于添加或删除或替换数组中的元素。
注意:这种方法会改变原始数组

 var arr = [1, 2, 3, 4, 5];
  // 删除
  // var result = arr.splice(2,1); // 第一个参数,从数组的第几个开始;第二个参数,操作几个元素 0 代表没有, 1 代表从当前的位置操作一个元素,
  // console.log(result); // 返回删除的元素,[3]
  // console.log(arr); // 原始的数组删除当前元素 [1, 2, 4, 5]
  // 替换
  // var result = arr.splice(2, 1, 66);
  // console.log(result); // 返回删除的元素,[3]
  // console.log(arr); // 原始的数组删除之后会添加一个新增的元素 , [1, 2, 66, 4, 5]
  // 新增
  // var result = arr.splice(2, 0, 88);
  // console.log(result); // 返回删除的元素,没有删除任何元素,返回[]
  // console.log(arr); // 原始的数组会在当前元素之前添加一个新增的元素 , [1, 2, 88, 3, 4, 5]

对数组的元素进行排序。sort

sort() 方法用于对数组的元素进行排序。
排序顺序可以是字母或数字,并按升序或降序。
默认排序顺序为按字母升序。
注意:当数字是按字母顺序排列时"40"将排在"5"前面。
使用数字排序,你必须通过一个函数作为参数来调用。
函数指定数字是按照升序还是降序排列。
这些说起来可能很难理解,你可以通过本页底部实例进一步了解它。
注意: 这种方法会改变原始数组!。

  var arr = [6, 2, 3, 4, 5];
  var result = arr.sort(function (a, b) { // a为每次比较的后者b为前者 在本数组中 a,b第一次分别是2,1
    console.log(a, b)
    console.log(a - b)
    return a - b; //  升序
    // return b - a;  //  降序
  });
  console.log(result); 
posted @ 2023-01-26 01:45  LC蜗牛  阅读(32)  评论(0编辑  收藏  举报