let str = 'Hello'; for (let char of str) { console.log(char); }输出结果为:
"H" "e" "l" "l" "o"我们可以看到,for of循环会按照对象的索引顺序迭代对象的值,例如字符串中的字符'H'是第一个,'o'是最后一个。 然而,当我们遍历对象属性时,for of循环的顺序是不确定的。例如:
let obj = {a: 1, b: 2, c: 3}; for (let prop of obj) { console.log(prop); }这段代码会报错,因为对象并不是一个可迭代对象,但是我们可以通过将对象的属性转化为数组来遍历它。但是,如果我们真的需要遍历对象的属性时,我们应该使用for in循环,for in循环会按照属性名的顺序进行迭代,例如:
let obj = {a: 1, b: 2, c: 3}; for (let prop in obj) { console.log(prop); }输出结果为:
"a" "b" "c"我们可以看到,for in循环是按照属性名的顺序进行迭代的。 除此之外,当我们使用for of循环遍历数组时,我们可以通过数组的sort()方法来改变for of循环迭代数组的顺序,例如:
let arr = [3, 1, 4, 2, 5]; arr.sort(); for (let num of arr) { console.log(num); }输出结果为:
1 2 3 4 5我们可以看到,当我们使用sort()方法将数组排序后再使用for of循环遍历数组,循环迭代的顺序就是数组中元素从小到大的顺序了。 综上所述,for of循环的顺序问题跟我们的代码逻辑密切相关,需要根据具体情况来进行选择及使用。在遍历数组中,如果我们需要按照索引顺序来迭代数组元素,我们可以使用for循环或forEach()方法来实现;如果我们无需使用索引,只需要遍历数组中的元素,for of循环就是最好的选择;如果我们需要遍历对象的属性,我们可以使用for in循环来实现;如果我们需要改变for of循环遍历数组的顺序,我们可以通过sort()方法来实现。
查看更多关于javascript for of 顺序的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did252493