Javascript中数组、字符串、对象遍历的方法与区别

2018-10-25  本文已影响0人  Fortune_Cookie

先申明3种数值:数组、字符串、对象

    var array = [4,5,6,7];
    var string = 'gaoliang';
    var object = {
        name:'gl',
        age:20,
        sayName:function() {
            console.log(this.name);
        }
    };

for in

数组

    for(let i in array) {
        console.log(i); //  0 1 2 3
    }

字符串

    for(let i in string) {
        console.log(i); //  0 1 2 3 4 5 6 7
    }

对象

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

总结:for in 循环遍历数组、字符串时,i 对应的是每一项的索引值,返回的是分别每一个索引值序列。 遍历对象时,i 对应的是对象的属性


for of

数组

    for(let v of array) {
        console.log(v); //  4 5 6 7
    }

字符串

    for(let v of string) {
        console.log(v); //  g a o l i a n g
    }

对象

     for(let v of object) {
        console.log(v);  // 报错:object is not iterable
     }

总结:for of 循环中,遍历的是数组或字符串时,v 对应的是 每一项的值,返回的是每一个值的序列;对象不能用for of 遍历


keys()

数组

    for(let i of array.keys()) {
        console.log(i); //  0 1 2 3
    }

对象

console.log(Object.keys(object));   //  ['name','age','sayName'];

总结


values()

数组

    for(let i of array.values()) {
        console.log(i); //  4 5 6 7
    }

对象

console.log(Object.values(object)); //  ['gl',20,f]

总结:


entries()

数组

    for(let [index,value] of array.entries()) {
        console.log(index,value);   // 0 4    1 5     2 6    3 7
    }

对象

    console.log(Object.entries(object));    //  ['name','gl']   ['age',20]  ['sayName',f]

总结:

上一篇下一篇

猜你喜欢

热点阅读