for..in..便利的是下标,键;for..of..便利的是值,数组内容
for..in更适合对象而for..of更适合数组
let arr = [1,2,3,'啊哈哈']
arr.name = '张'
arr[4] = '老八'
for (var i in arr){
console.log(i)
}
// 0,1,2,3,4,name
for(var i of arr){
console.log(i)
}
// 1,2,3,啊哈哈,'老八'
以对象方法给数组添加属性for..of内容不会显示,for..in会
以数组形式给数组添加属性或是数组本身就有的属性,两者都会显示
forEach有三个参数;分别是:值,下标,数组
let arr = [1,2,3,'啊哈哈']
arr.name = '张'
arr[4] = '老八'
arr.forEach((a,b,c)=>{
console.log(a)
console.log(b)
console.log(c)
})
// 1 0 [1, 2, 3, '啊哈哈', '老八', name: '张']
// 2 1 [1, 2, 3, '啊哈哈', '老八', name: '张']
// 3 2 [1, 2, 3, '啊哈哈', '老八', name: '张']
// 啊哈哈 3 [1, 2, 3, '啊哈哈', '老八', name: '张']
// 老八 4 [1, 2, 3, '啊哈哈', '老八', name: '张']
根据上面的代码我们可以的出结论如下:
1.以数组的方式添加的方法是会被算入数组长度的,对象方法则不行
2.对象方法添加的属性是可以被最后一个参数显示出来的
本文探讨了JavaScript中for..in和for..of两种迭代方式的差异。for..in主要用于遍历对象的属性,包括数组的索引和额外添加的属性;而for..of则主要针对数组的内容进行迭代。当给数组添加非索引属性时,for..of不会显示这些属性,但for..in会。同时,通过forEach方法遍历数组时,可以访问到所有属性,包括非索引属性。文章总结了这两种迭代方式在数组操作中的适用场景,并通过实例代码进行了说明。
1015

被折叠的 条评论
为什么被折叠?



