7

重複の可能性:
JavaScript での配列のループ

javascriptでphpのforeachに相当するものを作りたいです。私は Javascript 言語をよく知らないので、誰かにこの PHP コードを Javascript 部分に書き直してもらいたいです。

$my_array = array(2 => 'Mike', 4 => 'Peter', 7 => 'Sam', 10 => 'Michael');

foreach($my_array as $id => $name)
{
     echo $id . ' = ' . $name;
}

Javascript言語でそれを行うことさえ可能ですか?

4

4 に答える 4

18

最も近い構造は

a = { 2: 'Mike', 4: 'Peter', 7: 'Sam', 10: 'Michael' };
for(var n in a) {
    console.log(n+'='+a[n]);
}
于 2012-09-14T17:57:37.750 に答える
9

JQueryでも、$.each機能は似ています。

各アイテムにアクセスできるコールバック関数を使用して、配列を反復処理できます。

var arr = ["one", "two", "three", "four", "five"];
$.each(arr, function(index, value) {
  // work with value
});

プレーンなJavascriptの場合?

for (var key in obj) {
    alert(key + ': ' + obj[key]);
}
于 2012-09-14T17:58:42.553 に答える
4

あなたは双方向に存在するからです。

1 つ目はデータがオブジェクト内にある場合 (例では my_list 内)、2 つ目はデータが正確に配列内にある場合 (例では my_array です)。

いずれにせよ、JavaScript For...In ステートメントを使用できます

例:

<script type="text/javascript" charset="utf-8">
    var data;
    var my_list  = {2:'Mike', 4:'Peter', 7:'Sam', 10:'Michael'};
    var my_array = new Array();
    my_array[2]  = 'Mike';
    my_array[4]  = 'Peter';
    my_array[7]  = 'Sam'; 
    my_array[10] = 'Michael';

    data = '';
    for(index in my_list) {
        data += (index+'='+my_list[index]+"\n");
    }
    console.log(data);

    data = '';
    for(index in my_array) {
        data += (index+'='+my_array[index]+"\n");
    }
    console.log(data);
</script>

どちらの場合も、コンソール出力は次のようになります。

2=Mike
4=Peter
7=Sam
10=Michael

実際に読んでください http://www.w3schools.com/js/js_loop_for_in.asp

于 2012-09-14T18:09:05.200 に答える
2

下記URL参照

jqueryのphpに相当するforeach?

または試してみてください

オブジェクトを反復処理する場合は、JavaScript バリアントをお勧めします。

for (var key in obj) {
    alert(key + ': ' + obj[key]);
}

次のように jQuery でオブジェクトを反復処理することもできます。この構文の方が保守がはるかに簡単だと思わない限り、これを行うことはまったく無意味です。以下の構文には、上記の標準 JavaScript の for ループよりもはるかに多くのオーバーヘッドがあります。

$.each(obj, function (key, value) {
    alert(key + ': ' + value);
});

配列を反復するには、標準の JavaScript で次のようにします (arr が配列であると仮定します)。

for (var i = 0, l = arr.length; i < l; i++) {
    alert(i + ': ' + arr[i]);
}

jQuery で行うには、次のようにします。

$.each(arr, function (index, value) {
    alert(index + ': ' + value);
});
于 2012-09-14T18:03:48.677 に答える