0

他の要素の ID 値 (整数ではない) を使用して項目が格納される配列があります。ボタンをクリックすると、この配列の各項目のブール値を一度に「false」に変更できるようにしたいと考えています。私は整数のインクリメントを使用するループにしか慣れていないため、これはループでは実行できないと想定しています。これらの値をすべて一度に変更する方法はありますか、それとも再考する必要がありますか?

4

1 に答える 1

0

配列がどのように見えるかを正確に投稿しなかったため、構造を想定しています。このコードは、すべてのブール値を false にリセットします。

var array = {
    "id1":"foo",
    "id2":"bar",
    "id3":true,
    "id4":1,
    "id5":false,
};

$.each(array,function(index,obj){
    if(typeof obj === 'boolean' ) array[index] = false;
});

console.log(array);

ここにjsfiddleがあります(コンソールログを確認してください)

これを理解するための秘訣は、JavaScript の配列も数値キーを持つオブジェクトであるということです。ただし、キーは数値である必要はなく、数値以外のキーを使用して配列にアクセスすることもできます。たとえば、上記の配列を使用するとarray["id1"]、javascript で完全に有効になります。と同等ですarray.id1

アップデート

'array' 変数は実際にはここでは配列ではなく、オブジェクトです。詳細については、以下の @BalusC のコメントをお読みください。

于 2013-08-15T14:35:23.883 に答える