如何引用字符串数组中的字符串? [复制]

Posted

技术标签:

【中文标题】如何引用字符串数组中的字符串? [复制]【英文标题】:How do I reference the string in a array of strings? [duplicate] 【发布时间】:2013-07-04 03:40:11 【问题描述】:

我有以下几点:

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

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

输出是

0
1
2

我希望它输出:

Favorite
Starred
High Rated

我该怎么做?谢谢。

【问题讨论】:

console.log(tags[tag]) @onetrickpony 这行得通。请作为答案提交,我将标记为正确。谢谢。 【参考方案1】:

遍历数组:

这是一个字符串数组,不要使用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.

【讨论】:

+1 表示对象的属性使用【参考方案2】:

javascript 中的 for 循环中使用 in 与 Java 中的 : 或其他语言中的 foreach 不同 - 它不是提供对元素的引用,而是提供其索引。 如果你使用像 jQuery 这样的框架,有一个方法 - $.each 可以在迭代时通过回调访问元素(不仅是索引):

var a = ["Favorite", "Starred", "High Rated"];
$.each ( a, function ( index, data ) 

   console.log ( data );
);
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"&gt;&lt;/script&gt;

【讨论】:

为什么要使用 jQuery 来迭代数组? 这不是真的。 for..in 不返回索引,而是返回对象的属性。如果你使用一个数组,属性就是它的索引,但如果你使用一个对象,你会得到不同的输出(例如:var person = name: 'John', age: 25 ; for(var c in person ) console.log(c); )。我也不会使用 jQuery 来遍历列表。使用原生 javascript 更多 performatic .

以上是关于如何引用字符串数组中的字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

python - 如何修改数组中的字符串? [复制]

如何修剪数组中的所有字符串? [复制]

如何将包含字符“\ n”的多行字符串拆分为bash中的字符串数组? [复制]

如何将字符串数组动态传递给Java中的SQL“IN”子句? [复制]

当字符串包含 PHP 中的重复键时,如何将字符串转换为关联数组? [复制]

关于C中的结构,如何将数据从结构复制到字符串数组