将数组转换为对象数组 [英] Convert an array to an array of objects

查看:219
本文介绍了将数组转换为对象数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将数组转换为 JavaScript 对象数组.

例如我有一个数组

data = [[水果",冷冻",新鲜",腐烂"],[苹果",884,494,494],[橙子",4848,494,4949],[猕猴桃",848,33,33]]

我想将其转换为名称值对.

例如,结果集合中的第一个对象是

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

对其余数据依此类推.

解决方案

DEMO

使用您提供的数据:

var 数据 = [[水果",冷冻",新鲜",腐烂"],[苹果",884,494,494],[橙子",4848,494,4949],[猕猴桃",848,33,33]]

以下函数将数组的第一个元素视为对象属性的键.然后它将遍历剩余的元素,并使用这些键将它们转换为一个对象.最后,它将返回这些新对象的数组.

function convertToArrayOfObjects(data) {var 键 = data.shift(),i = 0, k = 0,对象 = 空,输出 = [];for (i = 0; i < data.length; i++) {对象 = {};for (k = 0; k 

输出

<预><代码>[{水果:'苹果',新鲜:494,冷冻:884,腐烂:494},{水果:'橙子',新鲜:494,冷冻:4848,腐烂:4949},{ 水果:'猕猴桃',新鲜:33,冷冻:848,腐烂:33}]

How I can convert an array to an array of JavaScript objects.

For example I have an array as

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

I want to convert it to a name value pair.

For example, first object in the resulting collection would be

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

and so on for rest of the data.

解决方案

DEMO

Using your supplied data:

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

The following function will treat the first element of the array as the keys for the objects properties. It will then loop over the remaining elements, and convert them into an object using these keys. Finally, it will return an array of these new objects.

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;
}

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 }
]

这篇关于将数组转换为对象数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆