1

次のような3つの配列があります。

var arr1 = [];
var arr2 = [];
var arr3 = [];

//When I want to add something into array then I use
arr1.push("text");
arr2.push("text");

しかし、次の例のようなものを作ることは可能ですか?

//example:
var arr = [];

arr['group1'].push("text1");
arr['group2'].push("text2");
arr['group2'].push("textn");

//and then iterate like:

for(item in arr['group1'])
  console.log(item);

そのようなことをすることさえ可能ですか?試してみましたが、うまくいきません。

4

4 に答える 4

5

ただし、基本的な誤解がありarrます。 は配列ですが、連想配列として使用しています。これは、JavaScript では object でより適切に表現されます{}for...in配列ではなくオブジェクト用です。MDN にはそれに関する警告があります。

for..in インデックスの順序が重要な配列を反復処理するために使用しないでください...

index が通常のforループまたはforEach.

次のより適切なアプローチの使用を検討してください。

var obj = {
  group1: ['text1'],
  group2: ['text2'],
  group3: ['text3']
};

// pushing more strings
obj.group1.push('foo');
obj['group2'].push('baz');
于 2012-09-19T03:12:55.140 に答える
3

arr['group1'](を使用して) 配列として扱って.push()いますが、配列として宣言していません。

var arr = [];

arr['group1'] = [];
arr['group2'] = [];
arr['group3'] = [];

arr['group1'].push("text1");
arr['group2'].push("text2");
arr['group2'].push("textn");
于 2012-09-19T03:07:43.100 に答える
2

配列ではなく Javascript オブジェクトを実際に探しているようです。
また、最初にこれらのオブジェクトを作成する必要があります。

var obj = {group1:[],group2:[],group3:[]};

/* or
var obj = {};
obj.group1 = [];
*/

obj['group1'].push("text1");
// or obj.group1.push("text1");
于 2012-09-19T03:14:04.767 に答える
1

構造体はfor...infor 変数を値ではなくキーに設定します。が配列であると仮定するarr['group1']と、これは正常に機能します。

//example:
var arr = [];

arr['group1'].push("text1");
arr['group2'].push("text2");
arr['group2'].push("textn");

//and then iterate like:

for(item in arr['group1'])
  console.log(arr['group1'][item]);​
于 2012-09-19T03:05:38.813 に答える