我们可以使用for-of循环访问数组元素:
For (const j of [1,2,3,4,5]) { console.log (j); }
我如何修改这段代码来访问当前索引?我想使用for-of语法来实现这一点,既不是forEach也不是for-in。
我们可以使用for-of循环访问数组元素:
For (const j of [1,2,3,4,5]) { console.log (j); }
我如何修改这段代码来访问当前索引?我想使用for-of语法来实现这一点,既不是forEach也不是for-in。
当前回答
只需在循环之前创建一个变量并分配一个整数值。
设index = 0;
然后使用加法赋值运算符进入循环作用域
指数+= 1;
就是这样,检查下面的代码片段示例。
设index = 0; For (const j of [1,2,3,4,5]) { console.log(指数,指数); 指数+= 1; }
其他回答
使用Array.prototype.keys:
对于[1,2,3,4,5].keys()的const索引{ console.log(指数); }
如果你想同时访问键和值,你可以使用Array.prototype.entries()进行解构:
For (const [index, value] of [1,2,3,4,5].entries()) { console.log(指数、价值); }
数组#entries返回索引和值,如果你需要两者:
for (let [index, value] of array.entries()) {
}
在这个花哨的新本地函数的世界里,我们有时会忘记基本的东西。
for (let i = 0; i < arr.length; i++) {
console.log('index:', i, 'element:', arr[i]);
}
干净,高效,你仍然可以打破循环。奖金!你也可以从结尾开始,用i——!
额外注意:如果你在循环中经常使用这个值,你可能希望执行const value = arr[i];在循环的顶部为一个简单的,可读的参考。
对于那些使用的对象不是数组,甚至不是类似数组的对象,你可以很容易地构建自己的iterable,这样你仍然可以使用For或For像localStorage这样只有长度的东西:
function indexerator(length) {
var output = new Object();
var index = 0;
output[Symbol.iterator] = function() {
return {next:function() {
return (index < length) ? {value:index++} : {done:true};
}};
};
return output;
}
然后输入一个数字:
for (let index of indexerator(localStorage.length))
console.log(localStorage.key(index))
只需在循环之前创建一个变量并分配一个整数值。
设index = 0;
然后使用加法赋值运算符进入循环作用域
指数+= 1;
就是这样,检查下面的代码片段示例。
设index = 0; For (const j of [1,2,3,4,5]) { console.log(指数,指数); 指数+= 1; }