5

私は次のものを持っています:

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

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

出力は

0
1
2

出力したい:

Favorite
Starred
High Rated

どうすればいいですか?ありがとう。

4

2 に答える 2

7

配列のイテレーション:

これは文字列の配列です。使用しないでください。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

with arrayの副作用for..in:

私の言葉を鵜呑みにしないでください。使用しない理由を見てみましょう: for..inin array には副作用がある可能性があります。見てみましょう:

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!

これらのコードのデモ フィドルを参照してください。

于 2013-07-06T02:14:36.297 に答える
0

inJavaScriptで inforループを使用することは:、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>

于 2013-07-06T02:18:43.180 に答える