for..in.. or for..of.. or foreach

本文探讨了JavaScript中for..in和for..of两种迭代方式的差异。for..in主要用于遍历对象的属性,包括数组的索引和额外添加的属性;而for..of则主要针对数组的内容进行迭代。当给数组添加非索引属性时,for..of不会显示这些属性,但for..in会。同时,通过forEach方法遍历数组时,可以访问到所有属性,包括非索引属性。文章总结了这两种迭代方式在数组操作中的适用场景,并通过实例代码进行了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.对象方法添加的属性是可以被最后一个参数显示出来的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值