Js 数组循环
提示:以下是本篇文章正文内容,下面仅供参考
Js 数组循环
// 1. for 循环操作 数组
/* 1). for 循环
for (let i = 0; let len = array.length; i < len ; i++) {
console.log(i);
}
2). for..in 循环
for (let i in array) {
console.log(i);
}
给数组新定义新属性时,数组的length不变,但 for..in 遍历数组会遍历到新定义的属性
3). for..of 循环
for (let i of array) {
console.log(i);
}
ES6新语法,为 for..in 缺点的完善,只遍历属于对象本身的属性值
注意:虽然 for..of 也可以遍历对象,但并不推荐,若要遍历对象可以使用 for..in 循环。
*/
// 2. ES6 新增 数组遍历 新语法
/* 1). find
1. let arr = [{ id: 0, name: "a" },
{ id: 1, name: "b" },
{ id: 2, name: "c" }]
1). let res = arr.find(function (item, index, arr) {
return item.id >= 1;
// arr[index].id == item.id
// console 结果 { id: 1, name: "b" }
})
2). let res = arr.find(item => item.id >= 1)
// console 结果 { id: 1, name: "b" }
3). let res = arr.find(item => item.id >= 3)
// console 结果 undefined
用于查找数组中符合条件的第一个元素,如果没有符合条件的元素,则返回 undefined,
对于空数组,函数是不会执行的,并未改变数组的原始值。
1). filter
1. let arr = [{ id: 0, name: "a" },
{ id: 1, name: "b" },
{ id: 2, name: "c" }]
1). let res = arr.filter(function (item, index, arr) {
return item.id >= 1;
// arr[index].id == item.id
// console 结果 { id: 1, name: "b" },{ id: 2, name: "c" }
})
2). let res = arr.filter(item => item.id >= 1)
// console 结果 { id: 1, name: "b" },{ id: 2, name: "c" }
3). let res = arr.filter(item => item.id >= 3)
// console 结果 []
创建一个包含所有通过测试函数的元素的新数组。如果没有元素满足测试函数,则返回一个空数组
find filter 区别:
1.success
find 返回第一个元素;
filter 返回一个包含所有通过测试函数的元素的新数组;
2.fail
find() 返回未定义;
filter() 返回一个空数组;
find filter 共点:都不改变原数组
*/