项目中经常需要处理一些数组,经常会自己维护一些方法,
今天总结了一下非常好用的但不常用的数组方法,希望以后能多用一下这些方法
MDN 链接:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array
1、every 和 some
Array.prototype.every()
Array.prototype.some()
every() 是对数组中每一项运行给定函数,
如果该函数对每一项返回 true, 则返回 true。
some() 是对数组中每一项运行给定函数,
如果该函数对任一项返回 true,则返回 true。
const tempData = [
{
id: 1,
name: "rocker",
adress: "US"
},
{
id: 2,
name: "rocker",
adress: "US"
},
{
id: 3,
name: "rocker",
adress: "US"
}
];
let everyReturn = tempData.every((item, index) => {return item.id > 1;});
let someReturn = tempData.some((item, index) => {return item.id > 2;});
console.log(everyReturn);
// 有一个是错的就返回 false 且的关系
console.log(someReturn);
// 有一个是对的就返回 true 或的关系
2、find 和 findIndex
const array = [5,10,89,33,55]
const found = array.find(item => item > 10)
console.log(found) //89
// 返回数组中第一个大于 10 的值
findIndex 方法则是返回第一个大于 10 的值的下标
3、forEach 方法跳出循环
Array.forEach(item => {if(true){throw new error()
}
)
另外 every 和 some 都可以用 return 来跳出循环
4、Array.prototype.flat()
var newArray = arr.flat([depth])
//depth 代表指定要提取嵌套数组的结构深度,默认值为 1。