javascript - 将对象数组转换为不同的对象

标签 javascript arrays object

我有一个对象数组:

[{ bags:10, pouch:small, weight:100, quantity:1 },
 { bags:101, pouch:large, weight:1001, quantity:11 }]

如何将该数组分成如下所示的多个对象?

small = { bags:10,weight:100,quantity:1 } 
large = { bags:101,weight:1001,quantity:11 }

最佳答案

确实可以,但我不推荐它!

var data = [{ bags: 10, pouch: 'small', weight: 100, quantity: 1 }, { bags: 101, pouch: 'large', weight: 1001, quantity: 11 }],
    object = data.forEach(function (a) {
        window[a.pouch] = { bags: a.bags, weight: a.weight, quantity: a.quantity };
    });

document.write('<pre>' + JSON.stringify(small, 0, 4) + '</pre>');
document.write('<pre>' + JSON.stringify(large, 0, 4) + '</pre>');

使用对象更好的解决方案

您可以首先构建一个使用 pouch 值作为属性的对象,然后将它们分配给所需的变量。

var data = [{ bags: 10, pouch: 'small', weight: 100, quantity: 1 }, { bags: 101, pouch: 'large', weight: 1001, quantity: 11 }],
    object = data.reduce(function (r, a) {
        r[a.pouch] = { bags: a.bags, weight: a.weight, quantity: a.quantity };
        return r;
    }, {});

document.write('<pre>' + JSON.stringify(object, 0, 4) + '</pre>');

var small = object.small,
    large = object.large;

document.write('<pre>' + JSON.stringify(small, 0, 4) + '</pre>');
document.write('<pre>' + JSON.stringify(large, 0, 4) + '</pre>');

关于javascript - 将对象数组转换为不同的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34767791/

相关文章:

javascript - 将值添加到选定的多选

javascript - 迭代数组与对象

javascript - 迭代枚举对象中多个数组的键值对

c++ - 为什么地址被认为是指针?

javascript - localStorage的返回类型是什么?

git - 为什么 git log --find-object 对于给定的 blob 会获得两个具有不同内容的文件提交?

javascript - 从 JSON 对象读取值

javascript - 如何在 javascript 中访问 JSON.parsed 对象

javascript - DatePicker 不尊重表单重置

javascript - Web 组件 :host:hover