遍历方法
- for…of
let arr = ["hello", 6, "world"];
for (let i of arr) {
console.log(i); // "hello", 6, "world"
}
- for…in
let arr = [6, 7, 8];
for (let i in arr) {
console.log(i); // 0, 1, 2
}
for (let i of arr) {
console.log(i); // 6, 7, 8
}
for…in遍历的是数组的索引(即健名),for…of遍历的是数组元素值;
for…in会遍历数组所有的可枚举值,包括原型,可以用hasOwnPropery方法判断某属性是否是该对象的实例属性;同样可以用ES5中Object.keys(myObject)获取对象的实例属性组成的数组;
3. forEach
let arr = [1, 3, 20, -1, 6, 17];
arr.forEach((item, index, array) => {
array[index] = item * 2;
});
console.log(arr); // [2, 6, 40, -2, 12, 34]
直接改变原来的数组,无返回值;
4. map
const arr = [1, 3, 20, -1, 6, 17];
const newArr = arr.map((item, index, array) => item * 2);
console.log(arr); // [1, 3, 20, -1, 6, 17]
console.log(newArr); // [2, 6, 40, -2, 12, 34]]
返回处理之后的新数组;
5. filter
const arr = [1, 3, 20, -1, 6, 17];
const newArr = arr.filter((item, index, array) => item < 5);
console.log(arr); // [1, 3, 20, -1, 6, 17]
console.log(newArr); // [1, 3, -1]
筛选数组中满足条件的值,返回筛选后的新数组;
6. every
const arr = [1, 3, 20, -1, 6, 17];
const bool = arr.every((item, index, array) => item < 12);
console.log(bool); // false
判断数组中的每一项元素是否都满足条件,返回一个布尔值;
所有元素都满足条件返回true,只要有一个不满足就返回false;
7. some
const arr = [1, 3, 20, -1, 6, 17];
const bool = arr.some((item, index, array) => item < 12);
console.log(bool); // true
判断数组中的是否存在满足条件的元素,返回一个布尔值;
只要有一个满足条件就返回true,如果都不满足返回false;