0

ユーザー入力から配列を作成したい。入力の詳細がわからないので、基本的には、後でさらにアクションを実行できるように、入力データを配列に定義、初期化、および入力するだけで済みます。

配列の例は次のようになります。

var input = ["1" : ["0": "Apple",
                    "1": "Orange"],
             "2" : ["0", "Cat",
                    "1", "Dog"],
             "4" : ["0", "Coffee"]
        ];

現在、これが機能していないため、定義、初期化、および入力する方法がわかりません。

    var input = [[]];
    $('.input').each(function(index, element) {
        var element_id = this.id;
        var element_value = $.trim(this.value);
        input[element_id][index] = element_value;
    });

助けてくれるJavaScriptの専門家はいますか?

4

1 に答える 1

3

コードを次のように変更します

var input = {};
$('.input').each(function(index, element) {
    var element_id = this.id;
    var element_value = $.trim(this.value);
    (input[element_id]||(input[element_id]={}))[index] = element_value;
});

次のようなものが得られます

    {"1" : {"0": "Apple",
                "1": "Orange"},
         "2" : {"0", "Cat",
                "1", "Dog"},
         "4" : {"0", "Coffee"}
    };

これは配列内の配列ではなく、マップ内のマップであり、より適切に示されているようです。

ここで、本当に配列が必要だとすると、キーとして文字列の代わりに整数が必要になります。それからあなたはするかもしれません

var input = [];
$('.input').each(function(index, element) {
    var element_id = parseInt(this.id,10);
    var element_value = parseInt($.trim(this.value),10);
    (input[element_id]||(input[element_id]=[]))[index] = element_value;
});
于 2013-08-01T13:23:57.690 に答える