JS中for in 与 for of

Posted cecelia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS中for in 与 for of相关的知识,希望对你有一定的参考价值。

// 数组
var
A=[4,6,74,67];

for in:拿到的是数组下标

for (let i in A){
console.log(i);
}

//0,1,2,3

for of:拿到的是数组元素

for (let i of A){
console.log(i);
}

字符串

var str="hellllo world";

for in:拿到的是字符串下标

for (let i in str){
    console.log(i)
}
//0 1 2 3 4 5 6 7 8 9 10 11 12

for of:拿到的是字符串中的字符

for (let i of str){
    console.log(i);
}
//  h e l l l l o   w o r l d

set 和 map:不能使用for in  (没有下标)

可以使用for of (可迭代对象)

var s=new Set([1,3,6,5,4,3]);
for (let i of s){
    console.log(i);
}

// 1 3 6 5 4 

let map = new Map([["name","nick"],["age",25]]);
//Map(2) {"name" => "nick", "age" => 25}
for (let i of map){
    console.log(i);
}
// ["name", "nick"]
// ["age", 25]

 

 对象不是可迭代对象,所以不能对其使用for of

var obj={
    name:‘alex‘,
    age:20
};

但可以使用for in:拿到的是对象的属性名

for (let i in obj){
    console.log(i);
}
// name
// age

 

以上是关于JS中for in 与 for of的主要内容,如果未能解决你的问题,请参考以下文章

js 各种循环的区别与用法(for in,forEach,for of)

Js中for in 和for of的区别

js for in 和 for of的区别

实例解析forEachfor...in与for...of

为啥 for..of / for..in 循环可以使用 const 而普通的 for 循环在 JS 中只能使用 let 或 var 作为其变量? [复制]

js中forEach,for in,for of的区别