ES6中常用数组方法总结

1.find()

find()返回值是第一个符合条件的数组子项,找到符合条件的之后就不在继续遍历。如果没有符合条件的元素则返回undefined。

let array = [{ name: '张三', age: 1 }, { name: '李四', age: 2 },{ name: '王五', age: 3 }]
let findItem = array.find(item => item.name === '张三') 
console.log(findItem)  // { name: '张三', age: 1 }
2.findIndex()

findIndex() 返回第一个符合条件的数组子项的下标,找到符合条件的之后就不在继续遍历。如果没有符合条件的元素则返回-1。

let array = [{ name: '张三', age: 1 }, { name: '李四', age: 2 },{ name: '王五', age: 3 }]
let findIndex = array.findIndex(item => item.name === '张三') 
console.log(findIndex)  // 0
3.forEach()

forEach() 方法对数组的每个元素执行一次给定的函数。

// 语法: array.forEach(function(item,index,array))
const array = ['a', 'b', 'c'];
array.forEach((element) => console.log(element));

// Expected output: "a"
// Expected output: "b"
// Expected output: "c"
4.map()

map() 返回数组,数组中的元素为原始数组调用函数处理后的值。

let array = [{ name: '张三', age: 1 }, { name: '李四', age: 2 },{ name: '王五', age: 3 }]
let map = array.map(item => item.age + 1) 	  // 返回符合条件元素组成的数组
console.log(map ) // [{ name: '张三', age: 2 }, { name: '李四', age: 3 },{ name: '王五', age: 4 }]
5.filter()

filter() 返回数组,包含了符合条件的所有元素。如果没有符合条件的元素则返回空数组。

let array = [{ name: '张三', age: 1 }, { name: '李四', age: 2 },{ name: '王五', age: 3 }]
let filter = array.filter(item => item.age > 1) 	  // 返回符合条件元素组成的数组
console.log(filter) // [{ name: '李四', age: 2 },{ name: '王五', age: 3 }]
6.includes()

includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。

// 语法: array.includes(searchElement)
let array = ['abc', 'def', 'ghi']
array.includes('def')
// => true
array.includes('txt')
// => false
7.some()

some() 方法用于检测数组中的元素是否满足指定条件。如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。如果没有满足条件的元素,则返回false。如果是空数组返回fales。

// 语法: array.some(function(item,index,array))
let array = [{ name: '张三', age: 1 }, { name: '李四', age: 2 },{ name: '王五', age: 3 }]
array.some(item => item.name=== '张三') 
// => true
8.every()

every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。如果所有元素都满足条件,则返回 true。如果是空数组返回true。

// 语法: array.every(function(item,index,array))
let array = [{ name: '张三', age: 1 }, { name: '李四', age: 2 },{ name: '王五', age: 3 }]
array.every(item => item.age < 4) 
// => true

注意:some()判断数组中是否至少有一个元素满足条件,every()判断数组中是否每个元素都满足条件。

9.reduce()

reduce() 方法对数组中的每个元素按序执行一个提供的 reducer 函数,每一次运行 reducer 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。

// 语法: array.reduce(function(accumulator,currentValue,currentIndex,array), initialValue)
const array1 = [1, 2, 3, 4];

// 0 + 1 + 2 + 3 + 4
const initialValue = 0;
const sumWithInitial = array1.reduce(
  (accumulator, currentValue) => accumulator + currentValue,
  initialValue,
);
// => 10

使用 reduce() 实现 filter() + map()

// [1, 2, 3, 4] --> [4, 6, 8]
// filter() + map()
const arr = [1, 2, 3, 4];
const result = arr.filter((item) => item > 1).map((item) => item * 2);
// reduce()
const result2 = datasetList.reduce((acc, item) => {
	if (item > 1) {
  		acc.push(item * 2);
	}
	return acc;
}, []);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值