首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于内循环和循环

用于内循环和循环
EN

Stack Overflow用户
提问于 2015-09-12 09:23:33
回答 3查看 124关注 0票数 3

2个快速问题

  1. 如何使用for...of访问数组中的索引位置?
  2. 如何使用for...in访问数组中的值?

伪码

代码语言:javascript
复制
var arr = [3, 5, 7];
var pos, value;

for (pos in arr) {
   console.log(pos); // logs "0", "1", "2"
}

for (value of arr) {
   console.log(value); // logs "3", "5", "7"
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-12 09:28:50

只需在原始数组上使用索引,就可以获得for in的值:

代码语言:javascript
复制
var arr = [3, 5, 7];
var pos, value;

for (pos in arr) {
   console.log(arr[pos]); // logs 3, 5, 7
}

注意,使用for...in迭代数组是一个不良做法

for…of中获取索引需要一个外部计数器:

代码语言:javascript
复制
var arr = [3, 5, 7];
var pos = 0, value;

for (value of arr) {
   console.log(pos++); // logs 0, 1, 2
}

两种情况下更好的解决方案是Array.prototype.forEach

代码语言:javascript
复制
arr.forEach((value, index) => {
    console.log('index: ', index);
    console.log('value: ', value);
});
票数 4
EN

Stack Overflow用户

发布于 2015-09-12 09:33:01

有一种方法:

代码语言:javascript
复制
for (let [key, value] of arr.entries()) {
    // ...
}

它使用Array.prototype.entries(),它在(key; value)阵列破坏的元组上返回一个迭代器,将其转换为两个分离的变量。

要特别指出您的答案:当您遍历数组时,您应该使用for (var i = 0; i < arr.length; ++i)for-offor-in

票数 7
EN

Stack Overflow用户

发布于 2015-09-12 09:27:55

使用for...in

代码语言:javascript
复制
for (pos in arr) {
   console.log(arr[pos]);// logs "3", "5", "7"
}

没有办法使用for...of。这会给你一个主意。

代码语言:javascript
复制
var arr = ["3", 3, {}, true];

for (value of arr) {
    console.log(typeof value);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32537201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档