JavaScript 中的数组操作🧐
介绍
结论
介绍
当我们开始编程时,我们倾向于创建自己的函数,并使用自己的循环来操作数组。
实际上,几乎所有OOP 语言(包括 JavaScript)都提供了实现它的方法。
如果你刚开始学习 JavaScript,那么这篇文章应该非常有用;对于其他人来说,这将是一个很好的提醒。
每一个
every 方法允许我们测试数组中的所有元素是否都满足某个条件。如果所有元素都满足测试条件,
则返回true ,否则返回false。
条件是一个函数。
例如,以下示例将测试数组中的每个“人类”是否都是成年人:
// The condition has to return a boolean
function condition (human) {
return human.age >= 18
}
var arr = [{
name: 'Thomas',
age: 19},{
name: 'Noé',
age: 17},{
name: 'Luc',
age: 20}]
console.log(arr.every(condition))
// Should output false
但是,如果至少有一个元素通过测试,some() 方法将返回true
筛选
filter 方法创建并返回一个新数组,其中包含所有符合条件的元素。
条件是一个函数。
以下示例返回唯一由 adult 组成的数组:
function condition (human) {
return human.age >= 18
}
var arr = [{
name: 'Thomas',
age: 19},{
name: 'Noé',
age: 17},{
name: 'Luc',
age: 20}]
console.log(arr.filter(condition))
// Returns Thomas and Luc
寻找
find() 方法返回数组中第一个符合条件的元素。 否则,如果没有元素符合条件,则 find() 返回'undefined'。 通常,条件是一个函数。
此示例返回第一个成年人:
function condition (human) {
return human.age >= 18
}
var arr = [{
name: 'Thomas',
age: 19},{
name: 'Noé',
age: 17},{
name: 'Luc',
age: 20}]
console.log(arr.find(condition))
// Should returns Thomas
地图
map 方法创建一个新数组,并返回对调用数组的每个元素执行的函数的值
此示例会增加每个人的年龄:
var arr = [{
name: 'Thomas',
age: 19},{
name: 'Noé',
age: 17},{
name: 'Luc',
age: 20}]
console.log(arr.map(function(element){
element.age += 1
return element
}))
减少
最后但同样重要的一点是,reduce() 方法对我来说是最棘手的方法。
Reduce 方法通过对数组中的每个值执行提供的函数,将数组缩减为单个值。 对于每个元素,返回值存储在一个“累加器”中,该累加器可用于所有迭代。Reduce () 方法的 最终返回值是这个累加器。 累加器应在方法调用时初始化。
此外,reducer 函数还可以采用另外两个参数:
- 当前指数
- 源数组
此示例返回年龄总和:
function reducer (accumulator,element) {
return accumulator + element.age
}
var arr = [{
name: 'Thomas',
age: 19},{
name: 'Noé',
age: 17},{
name: 'Luc',
age: 20}]
console.log(arr.reduce(reducer,0))
前面的例子很简单,但是reduce()方法真的很强大,用它可以实现很多事情。
结论
感谢您阅读我的文章,如果您有任何疑问,请提出!🧐
文章来源:https://dev.to/thomasaudo/advanced-array-manipulation-in-javascript--fhi