前言
最近使用foreach进行循环遍历经常遇到问题,记录下来,一起排坑。
for循环与foreach的区别
1.foreach与for循环 数组对象是可以修改值的。
列子1:
for循环的改动操作:
let arr=[{name:"李林",age:10},{name:"小林",age:20},{name:"恍然",age:30},{name:"林林",age:15}]
for(let i=0;i<arr.length;i++){
arr[i].name="丽丽"
}
console.log(arr)
for循环的结果
列子2:
foreach的循环操作,循环数组对象的时候是可以修改值的
let arr=[{name:"李林",age:10},{name:"小林",age:20},{name:"恍然",age:30},{name:"林林",age:15}]
arr.forEach(e=>{
e.name="小凯"
})
console.log(arr)
foreach循环的结果
2.for循环可以修改数组,foreach循环不能修改数组
for循环
var array = ["a","b","c","d"];
for (var i = 0; i < array.length; i ++) {
array[i] = "A";
};
console.log(array); // 结果:"A" "A" "A" "A"
foreach循环
var array2 = ["a","b","c","d"];
array2.forEach(function(item) {
item = "A";
});
console.log(array2); // 结果:["a","b","c","d"]
3.for循环时可以使用break跳出循环,foreach不可以使用,只能用try…catch。
4.forEach中使用return不会报错,但rerutn并不会生效;如果我们真的要用return返回某个值,那就只能将return操作放在函数中,而不是forEach循环中
列子:
function find(array, num) {
let a;
array.forEach((self, index) => {
if (self === num) {
a = index;
};
});
return a;
};