for-in,for-of(含Map)详细演示

  到底部

一、数组,对象示例

对于字符串: 字符串本质上是字符数组
对于对象数组: 就是数组,里面每个成员都是对象

let Str = 'ab'
let Arr = ['11', '22']
let Obj = {
    id: 001,
    name: 'aa'
}
// 对象数组
let ArrObj = [
    { id: '001', name: 'aaa' },
    { id: '002', name: 'bbb' }
]

二、for-in

// for- in : i 是 index (在数组、字符串中) 或者 key (在对象中)
for (const i in Str) {
    console.log(i, ' - ', Str[i]);
    // 0 - a
    // 1 - b
}

for (const i in Arr) {
    console.log(i, ' - ', Arr[i]);
    // 0 - 11
    // 1 -22
}

for (const i in Obj) {
    console.log(i, ' - ', Obj[i]);
    // id  -  1
    // name  -  aa
}

for (const i in ArrObj) {
    console.log(i, ' - ', ArrObj[i],
        ArrObj[i].id, ArrObj[i].name);
    // 0  -  { id: '001', name: 'aaa' } 001 aaa
    // 1  -  { id: '002', name: 'bbb' } 002 bbb
}

三、for-of

:注意不能应用于对象

// for -of : i是元素 , 且 xxx[i] === undefined
for (const i of Str) {
    console.log(i);
    // a
    // b
}
for (const i of Arr) {
    console.log(i);
    // 11
    // 22
}
// for (const i of Obj) { 对象没有迭代器Iterator }
for (const i of ArrObj) {
    console.log(i, ' - ', i.id, i.name)
    // { id: '001', name: 'aaa' }  -  001 aaa
	// { id: '002', name: 'bbb' }  -  002 bbb
}

四、for-of 遍历 Map、Set

:之所以不能 for-in 是因为 mapset 都没有index
:可以用 forEach

const set = new Set(['1', '2', '1', '3']) // 这个不演示了
const map = new Map([['1', 'one'], ['2', 'two']]);
map.set('3','three')
map.get('3') // three
map.delete('3')

console.log(map);
// Map(2) { '1' => 'one', '2' => 'two' }
for (const i of map) {
    console.log(i, ' --- ', i[0], i[1]);
    // [ '1', 'one' ]  ---  1 one
    // [ '2', 'two' ]  ---  2 two
}
for (const i of map.keys()) {
    console.log(i, map.get(i));
    // 1 one
    // 2 two
}
for (const i of map.values()) {
    console.log(i);
    // one
    // two
}

五、forEach

:只用于数组。字符串转数组:常用是 Str.spilt(“”)

Arr.forEach((val,i) => {
    // 1~3个形参,按 value index array(就是Arr) 排列,一般就只用一个value
    console.log(i,' - ',val);
});


  到顶部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小木荣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值