0

次のようにフォーマットされた2次元配列があります。

[["a",1], ["b",2]]

フォーマットを次のように変更したいと思います。

{"a":1,"b":2}

これどうやってするの?簡単でばかげた質問ならごめんなさい。

4

6 に答える 6

3

同じキーが2回表示されないことを確認すると仮定します(つまり、2つの内部配列はありません"a")。

var inputArray = [["a",1], ["b",2]],
    outputObject = {},
    i;

for (i = 0; i < inputArray.length; i++)
    outputObject[inputArray[i][0]] = inputArray[i][1];

$.each()それだけではjQueryが足りない場合は、ループなどの代わりに使用できると思いますが、私の意見では、この種の場合はforプレーンループで十分です。for

于 2013-03-24T21:40:03.363 に答える
2
var arr = [["a",1], ["b",2]], obj = {}, i;

for (i = 0; i < arr.length; i++) {
    obj[arr[i][0]] = arr[i][1];
}
于 2013-03-24T21:40:04.620 に答える
2

これは非常に簡単です。

var myList = {};
for( var i in myArray ) {
    myList[myArray[i][0]] = myArray[i][1];
}
于 2013-03-24T21:40:19.307 に答える
2
var result = {};
$.each([["a",1], ["b", 2]], function(){result[this[0]] = this[1]})
于 2013-03-24T21:40:47.690 に答える
2

多次元配列を反復処理して、内部配列の最初のインデックスをプロパティとして割り当て、2番目のインデックスを値として割り当てることができます。

var arr = [["a",1], ["b",2]];
var obj = {};

for(var i = 0; i < arr.length; i++){
  obj[arr[i][0]] = arr[i][1];
}

実例 http://jsfiddle.net/4Pmzx/

于 2013-03-24T21:40:55.697 に答える
1

キーが2回表示されないと仮定します。

var o = {};
[["a",1], ["b",2]].forEach(function(value) {o[value[0]] = value[1];});
于 2013-03-24T21:41:08.447 に答える