JavaScript 5 新增 Array 方法实现介绍
介绍
在 ES5(即 ECMAScript 5)规范中,JavaScript 新增了多个 Array 方法,这些方法可以更加方便的进行数组的操作,提高了开发效率。本文将详细讲解这些新增数组方法的使用方法。
新增方法列表
ES5 新增的 Array 方法如下:
- Array.prototype.indexOf()
- Array.prototype.lastIndexOf()
- Array.prototype.every()
- Array.prototype.some()
- Array.prototype.forEach()
- Array.prototype.map()
- Array.prototype.filter()
- Array.prototype.reduce()
- Array.prototype.reduceRight()
下文将一一进行讲解。
indexOf() 和 lastIndexOf()
indexOf() 方法用于查找数组中特定元素的第一个索引位置,如果未找到,则返回 -1。lastIndexOf() 与之类似,不同之处在于它从数组末尾向前查找元素。
示例:
const arr = [1, 2, 3, 4, 5];
console.log(arr.indexOf(3)); // 2
console.log(arr.indexOf(6)); // -1
console.log(arr.lastIndexOf(3)); // 2
console.log(arr.lastIndexOf(6)); // -1
输出:
2
-1
2
-1
上述示例中,我们首先创建了一个包含 1 到 5 的整数的数组,然后分别使用 indexOf() 和 lastIndexOf() 方法查找 3 和 6。可以看到,当查找到存在的元素时,方法分别返回了其在数组中的索引值;当查找到不存在的元素时,方法返回 -1。
every() 和 some()
every() 方法用于检查数组中所有元素是否满足指定条件。如果数组中的每个元素都满足条件,则 every() 方法返回 true。而 some() 则是判断数组中是否至少有一个元素满足指定条件。如果数组中存在至少一个元素满足条件,则 some() 返回 true。
示例:
const arr = [1, 2, 3, 4, 5];
function isNumGreaterThanTwo(element, index, array) {
return element > 2;
}
console.log(arr.every(isNumGreaterThanTwo)); // false
console.log(arr.some(isNumGreaterThanTwo)); // true
输出:
false
true
上述示例中,我们定义一个回调函数 isNumGreaterThanTwo(),用于判断当前元素是否大于 2。然后,我们分别使用 every() 和 some() 方法检查数组中的所有元素是否满足该条件。可以看到,every() 返回了 false,因为有元素不满足条件;而 some() 返回了 true,因为至少有一个元素满足条件。
forEach() 和 map()
forEach() 方法可用于遍历数组中的所有元素。它接受一个回调函数,该函数将在数组中的每个元素上执行一次。而 map() 则是对数组中的每个元素进行操作,并将得到的结果保存在另一个数组中返回。
示例:
const arr = [1, 2, 3, 4, 5];
function printNum(element, index, array) {
console.log(element);
}
function doubleNum(element, index, array) {
return element * 2;
}
arr.forEach(printNum); // 依次输出 1, 2, 3, 4, 5
const newArr = arr.map(doubleNum);
console.log(newArr); // 输出 [2, 4, 6, 8, 10]
输出:
1
2
3
4
5
[2, 4, 6, 8, 10]
上述示例中,我们首先定义了两个回调函数 printNum() 和 doubleNum(),分别用于遍历和操作数组元素。然后,我们使用 forEach() 方法遍历数组 arr 并依次输出其所有元素,接着使用 map() 方法对数组中的每个元素执行 doubleNum() 方法并将得到的结果存储在新数组中返回。
filter() 和 reduce()
filter() 方法可用于筛选出数组中满足条件的元素,并返回一个新数组。而 reduce() 则是对数组中的所有元素进行迭代,然后将它们压缩到单个值中。
示例:
const arr = [1, 2, 3, 4, 5];
function isNumOdd(element, index, array) {
return element % 2 !== 0;
}
function sum(prevValue, curValue, curIndex, array) {
return prevValue + curValue;
}
const filteredArr = arr.filter(isNumOdd);
console.log(filteredArr); // 输出 [1, 3, 5]
const sumOfArr = arr.reduce(sum);
console.log(sumOfArr); // 输出 15
输出:
[1, 3, 5]
15
上述示例中,我们定义了两个回调函数 isNumOdd() 和 sum(),分别用于筛选奇数和求和。然后,我们使用 filter() 方法筛选出所有奇数,再使用 reduce() 方法求和。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript 5 新增 Array 方法实现介绍 - Python技术站