如何引用字符串数组中的字符串? [复制]
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 );
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
【讨论】:
为什么要使用 jQuery 来迭代数组? 这不是真的。for..in
不返回索引,而是返回对象的属性。如果你使用一个数组,属性就是它的索引,但如果你使用一个对象,你会得到不同的输出(例如:var person = name: 'John', age: 25 ; for(var c in person ) console.log(c);
)。我也不会使用 jQuery 来遍历列表。使用原生 javascript 更多 performatic .以上是关于如何引用字符串数组中的字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何将包含字符“\ n”的多行字符串拆分为bash中的字符串数组? [复制]
如何将字符串数组动态传递给Java中的SQL“IN”子句? [复制]