ES5数组新增

时间:2022-07-23
本文章向大家介绍ES5数组新增,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一、 arr.forEach

arr.forEach(callback[, thisArg]),callback接受3个参数,顺序依次是,currtValue,index,array,thisArg可选,当前this值(使用箭头函数,thisArg参数会被忽略)

示例代码:
[0,1,2].forEach(alert)
注意: 1. 无返回值。2. 不能中止或跳出 forEach 循环

二、array.map

array.map(callback[, thisArg])forEach用法一样,但map方法有返回值(一个新数组,每个元素都是回调函数的结果)

示例代码:
[0,1,2,3].map(parseInt) // [0, NaN, NaN, NaN]

三、array.filter

array.filter(callback[, thisArg]),用法类似于map,返回过滤后的新数组,callback需要返回truefalse

示例代码:
const arr = [0, 1, 2, 3];
const newArray = arr.filter(item => item);
console.log(newArray); // [1, 2, 3]

四、array.some

array.some(callback[, thisArg]),测试是否至少有一个元素可以通过被提供的函数方法,如果测试有元素通过,循环中止。该方法返回一个Boolean类型的值。

示例代码:
const arr = [4, 5, 6, 7]
let num = 0
const newArr = arr.some(item => {
  num++
  return item === 4
})
console.log(num) // 1
console.log(newArr) // true

五、array.every

array.every(callback[, thisArg]),与array.some用法类似,every()方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。如果检测到没有通过的即循环中止。该方法返回一个Boolean类型的值。

示例代码:
const arr = [4, 5, 6, 7]
let num = 0
const newArr = arr.every(item => {
  num++
  return item <= 5
})
console.log(num) // 3
console.log(newArr) // false

六、array.indexOf

array.indexOf(searchElement[, fromIndex = 0]) 第一个参数为查找的值。 第二个参数为从哪里开始查找,若缺省或格式不合要求,使用默认值0,-1为从倒数第一个开始依次类推。 返回值为首个被找到的元素在数组中的索引位置; 若没有找到则返回 -1

示例代码:
const arr = [1,3,5,7]
const newArr = arr.indexOf(5, "x")
console.log(newArr) // 2

七、array.lastIndexOf

array.lastIndexOf(searchElement[, fromIndex = 0]),用法类似于array.indexOf 不同处lastIndexOf是从字符串的末尾开始查找,而不是从开头。fromIndex的默认值是array.length - 1而不是0.

八、array.reduce

array.reduce(callback[, initialValue])callback函数接受4个参数:之前值、当前值、索引值以及数组本身,即:previouscurrtValue,index,arrayinitialValue参数可选,表示初始值。若指定,则当作最初使用的previous值;如果缺省,则使用数组的第一个元素作为previous初始值,同时current往后排一位,相比有initialValue值少一次迭代。

const sum = [1, 2, 3, 4].reduce((previous, current, index, array) => previous + current);
console.log(sum);  // 10

说明:

  1. 因为initialValue不存在,因此一开始的previous值等于数组的第一个元素。
  2. 从而current值在第一次调用的时候就是2.
  3. 最后两个参数为索引值index以及数组本身array.

九、array.reduceRight

array.reduce用法一样,实现上的差异在于array.reduceRight从数组末尾开始