javascript - 如何引用字符串数组中的字符串?

标签 javascript arrays

<分区>

我有以下内容:

var tags = ["Favorite", "Starred", "High Rated"];

for (var tag in tags) {
    console.log(tag);
}

输出是

0
1
2

我希望它输出:

Favorite
Starred
High Rated

我该怎么做?谢谢。

最佳答案

遍历数组:

那是一个字符串数组,不要使用 for..in,使用普通的 for 循环:

var tags = ["Favorite", "Starred", "High Rated"];
for (var i = 0; i < tags.length; i++) { // proper way to iterate an array
    console.log(tags[i]);
}

输出:

Favorite
Starred
High Rated

正确使用for..in:

它用于对象的属性,例如:

var tags2 = {"Favorite": "some", "Starred": "stuff", "High Rated": "here"};
for (var tag in tags2) { // enumerating objects properties
    console.log("My property: " + tag +"'s value is " +tags2[tag]);
}

输出:

My property: Favorite's value is some
My property: Starred's value is stuff
My property: High Rated's value is here

for..in 对数组的副作用:

不要相信我的话,让我们看看为什么不使用它:数组中的 for..in 会产生副作用。看一看:

var tags3 = ["Favorite", "Starred", "High Rated"];
tags3.gotcha = 'GOTCHA!'; // not an item of the array

// they can be set globally too, affecting all arrays without you noticing:
Array.prototype.otherGotcha = "GLOBAL!";

for (var tag in tags3) {
    console.log("Side effect: "+ tags3[tag]);
}

输出:

Side effect: Favorite
Side effect: Starred
Side effect: High
Side effect: GOTCHA!
Side effect: GLOBAL!

See a demo fiddle for these codes.

关于javascript - 如何引用字符串数组中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17498981/

相关文章:

javascript - 在动画播放完毕后,在没有 HTML a 标签的情况下创建指向其他页面的超链接

javascript - 如何使用 Chrome 扩展程序从页面中剪切元素

javascript - 使用基于id的Angular JS合并数组中的多个对象

c++ - 我如何比较 C 或 C++ 中数组的内容

java - 获取字符串在字符串数组中的索引

javascript - 如何在javascript中慢慢隐藏div

javascript - 按标签名称查找下一个元素

arrays - 使用非常量值的逻辑索引更新数组中的值

java - 基本数组中随机生成的数字

javascript - 绑定(bind)点击控制