15

配列を JavaScript オブジェクトの配列に変換する方法。

たとえば、私は配列を持っています

data = [
    ["fruits","frozen","fresh","rotten"],
    ["apples",884,494,494],
    ["oranges",4848,494,4949],
    ["kiwi",848,33,33]
]

名前と値のペアに変換したい。

たとえば、結果のコレクションの最初のオブジェクトは次のようになります。

 {"fruits": "apple", "frozen": 884, "fresh": 494, "rotten": 494}

残りのデータについても同様です。

4

4 に答える 4

10

デモ

提供されたデータの使用:

var data = [
    ["fruits","frozen","fresh","rotten"],
    ["apples",884,494,494],
    ["oranges",4848,494,4949],
    ["kiwi",848,33,33]
]

次の関数は、配列の最初の要素をオブジェクト プロパティのキーとして扱います。次に、残りの要素をループし、これらのキーを使用してそれらをオブジェクトに変換します。最後に、これらの新しいオブジェクトの配列を返します。

function convertToArrayOfObjects(data) {
    var keys = data.shift(),
        i = 0, k = 0,
        obj = null,
        output = [];

    for (i = 0; i < data.length; i++) {
        obj = {};

        for (k = 0; k < keys.length; k++) {
            obj[keys[k]] = data[i][k];
        }

        output.push(obj);
    }

    return output;
}

出力

[
    { fruits: 'apples', fresh: 494, frozen: 884, rotten: 494 },
    { fruits: 'oranges', fresh: 494, frozen: 4848, rotten: 4949 },
    { fruits: 'kiwi', fresh: 33, frozen: 848, rotten: 33 }
]
于 2013-12-27T21:15:40.377 に答える