首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在遍历数组时获取索引而不是实际值

在遍历数组时获取索引而不是实际值
EN

Stack Overflow用户
提问于 2013-04-03 19:47:41
回答 4查看 35关注 0票数 0

我在用这个密码。

代码语言:javascript
复制
var stuff = "mango,tango,snake";
for (thing in stuff.split(","))
  console.log(thing);

我在等三句话。我有三行索引。我检查了toString等方法。没人帮上忙。

  1. 为什么?
  2. 我应该用什么代替?
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-04-03 20:04:52

我应该用什么代替?

您可以使用ECMAScript 5 's特性Array.forEach来满足您的需要。

代码语言:javascript
复制
var stuff = "mango,tango,snake";
stuff.split(",").forEach(function(thing){ alert(thing); });
票数 0
EN

Stack Overflow用户

发布于 2013-04-03 19:48:40

这是正常的行为。若要记录值,请使用

代码语言:javascript
复制
var arr = stuff.split(",");
for (var thing in arr)
  console.log(arr[thing]);

参见for in (重点是我的):

在每次迭代中,都将一个不同的属性名称分配给变量。

票数 1
EN

Stack Overflow用户

发布于 2013-04-03 19:51:12

Javascript也只是一个对象,它也是从Object继承的。但是,这个数组也继承了Array.prototype,并得到了一些特殊的方法和行为。

但毕竟,它只是一个对象,这意味着它的结构看起来

代码语言:javascript
复制
{
    0:   'mango',
    1:   'tango',
    2:   'snake'
}

如果您现在在该对象上使用for..in循环,我们只会得到您描述的结果(以及我们应该期望的结果)。对象的键,只是索引值,我们只是在对象键上循环,对吗?

要获取密钥后面的实际值,我们访问整个对象,如

代码语言:javascript
复制
objectName[ key ]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15796654

复制
相关文章

相似问题

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