for loop
-
可以使用 break 结束循环或使用continue 跳出当前循环
let arr =[0,1,2,3,4]
for(let i =0;i<arr.length;i++){
if(i>2)break;
console.log(arr[i]);
}
for of
-
可以搭配 break、continue 和 return 使用
const arr = ["apple", "orange", "banana"];
for (const item of arr) {
if (item === "orange") continue;
console.log(item);
}
for in
-
遍历的是键值 (key),而在数组中的 键值 (key) 就是 索引 (index)
const arr = ["apple", "orange", "banana"];
for (const item in arr) {
console.log(item);
}
forEach
-
不能使用 break 和 continue 语法跳出循环
-
forEach方法只会遍历原数组,并不会回传一个新数组。所以如果需要从一个旧数组中建构出另一个新数组,应该使用 map 方法
const arr = ["apple", "orange", "banana"];
arr.forEach((value)=>{
console.log(value);
})
map
const arr = [1, 2, 3, 4];
const newArr = arr.map((x) => x + 1);
console.log(newArr);
// [2,3,4,5]
console.log(arr);
[1,2,3,4] // 原数组不会被改变
filter
-
创建回传一个新数组,并过滤掉没有通过所提供函式的元素
const arr = [19, 2, 13, 40];
const newArr = arr.filter((x) => x > 18);
console.log(newArr);
// [19, 40]
// [19, 40]
console.log(arr);
[19, 2, 13, 40] // 原数组不会被改变
every
-
一假则假(有一个条件不满足则为false 每一个都要满足)
-
会测试数组中每一个元素是否通过提供的函式,最终返回一个布尔值(Boolean)
[12, 5, 8, 130, 44].every((x) => x > 10); // false
[12, 54, 18, 130, 44].every((x) => x > 10); // true
some
-
一真则真(有一个条件满足则为true 一个满足即可)
-
会测试数组每一个元素是否通过提供的函式,若其中有一个元素测试值为 true,那就会提前结束,并回传 true
[2, 5, 8, 1, 4].some((x) => x > 10); // false
[12, 5, 8, 1, 4].some((x) => x > 10); // true