×

js遍历方式总结

96
公子言歌
2017.01.04 22:19* 字数 284
var str='abcde';
var obj={
    'name':'xiaoxue',
    'age':'18'
};
var arr=['aa','bb','cc','bb'];
var set=new Set(arr);
var map=new Map([['name','xiaoxue'],['age','18'],['sex','w']]);

console.log(set);
// 把Set转换成Array
var arr2=Array.from(set);
console.log(arr2);

普通for循环

只能遍历数组和字符串

  • 普通for循环遍历字符串
console.log("普通for循环遍历字符串");
for (var i = 0; i < str.length; i++) {
console.log(str[i]+'=='+str.charAt(i)+'=='+str.charCodeAt(i));
}
  • 普通for循环遍历对象 不能使用
console.log("普通for循环遍历对象    不能使用");
  • 普通for循环遍历数组
console.log("普通for循环遍历数组");
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
  • 普通for循环遍历Set 可以遍历,但是没有意义,获取不到每个值
  • 普通for循环遍历Map 可以遍历,但是没有意义,获取不到每个值

for..in..循环

可以遍历字符串、对象、数组

  • for..in..循环遍历字符串
for(var prop in str){
    console.log(str[i]+"=="+str.charAt(i));
}
  • for..in..循环遍历对象
for (var prop in obj) {
    console.log(obj[prop]);
}
  • for..in..循环遍历数组
for (var i in arr) {
    console.log(arr[i]);
}
  • for in循环遍历Set 不能遍历
  • for in循环遍历Map 不能遍历

for..of..循环

不能遍历对象,需要实现Symbol.interator接口

  • for..of..遍历字符串
for (var chr of str) {
    console.log(chr);
}
  • for..of..循环遍历对象 不能遍历,需要实现Symbol.interator接口
  • for..of..循环遍历数组
for (var ele of arr) {
    console.log(ele);
}
  • for..of..循环遍历Set
for (var s of set) {
    console.log(s);
}
  • for..of..循环遍历Map
for (var m of map) {
    console.log(m);
    console.log(m[0]+"="+m[1]);
}
for (var [key,value] of map) {
    console.log(key+"="+value);
}
for (var key of map.keys()) {
    console.log(key);
}
for (var value of map.values()) {
    console.log(value);
}

forEach()循环

forEach循环不能遍历字符串、对象

  • forEach遍历字符串:不能使用
  • forEach遍历对象:不能使用
  • forEach遍历数组
arr.forEach(function(ele,index,arr){
    console.log(ele+'=='+index);
    console.log(arr[index]);
});
  • forEach遍历Set
// 前两个参数就是set的每一个元素
set.forEach(function(ele,ele2){
    console.log(ele+"=="+ele2);
});
  • forEach遍历Map
map.forEach(function(key,value){
    console.log(key+"=="+value);
})
技术小栈——记学习
Web note ad 1