JS

js遍历方式总结

2017-01-04  本文已影响0人  言歌不言歌
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循环

只能遍历数组和字符串

console.log("普通for循环遍历字符串");
for (var i = 0; i < str.length; i++) {
    console.log(str[i]+'=='+str.charAt(i)+'=='+str.charCodeAt(i));
}
console.log("普通for循环遍历对象    不能使用");
console.log("普通for循环遍历数组");
for (var i = 0; i < arr.length; i++) {
    console.log(arr[i]);
}

for..in..循环

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

for(var prop in str){
    console.log(str[i]+"=="+str.charAt(i));
}
for (var prop in obj) {
    console.log(obj[prop]);
}
for (var i in arr) {
    console.log(arr[i]);
}

for..of..循环

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

for (var chr of str) {
    console.log(chr);
}
for (var ele of arr) {
    console.log(ele);
}
for (var s of set) {
    console.log(s);
}
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循环不能遍历字符串、对象

arr.forEach(function(ele,index,arr){
    console.log(ele+'=='+index);
    console.log(arr[index]);
});
// 前两个参数就是set的每一个元素
set.forEach(function(ele,ele2){
    console.log(ele+"=="+ele2);
});
map.forEach(function(key,value){
    console.log(key+"=="+value);
})
上一篇 下一篇

猜你喜欢

热点阅读