gpt4 book ai didi

javascript - 在javascript中折叠属性值上的对象数组

转载 作者:搜寻专家 更新时间:2023-11-01 04:23:19 24 4
gpt4 key购买 nike

如何在一个属性上折叠和排列以便转:

[ { key: 'black', value: [ '2', '3', '9' ] },
{ key: 'black', value: [ '1' ] },
{ key: 'gold', value: [ '2', '3' ] },
{ key: 'gold', value: [ '1' ] },
{ key: 'red', value: [ '9' ] },
{ key: 'white', value: [ '2', '3' ] },
{ key: 'white', value: [ '1' ] } ]

...进入:

[ { key: 'black', value: [ '1', '2', '3', '9' ] },
{ key: 'gold', value: [ '1', '2', '3' ] },
{ key: 'red', value: [ '9' ] },
{ key: 'white', value: [ '1', '2', '3' ] } ]

...使用 javascript。

我觉得应该有一个相当简单的方法来使用 lodash 或 Array.reduce 来做到这一点,但我无法为我的生活弄清楚如何去做。

最佳答案

您可以使用一个临时对象来引用这些组,并在一个循环中返回一个包含结果的数组。

var array = [{ key: 'black', value: ['2', '3', '9'] }, { key: 'black', value: ['1'] }, { key: 'gold', value: ['2', '3'] }, { key: 'gold', value: ['1'] }, { key: 'red', value: ['9'] }, { key: 'white', value: ['2', '3'] }, { key: 'white', value: ['1'] }],
result = [];

array.forEach(function (a) {
if (!this[a.key]) {
this[a.key] = { key: a.key, value: [] };
result.push(this[a.key]);
}
this[a.key].value = this[a.key].value.concat(a.value);
this[a.key].value.sort();
}, {});

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

关于javascript - 在javascript中折叠属性值上的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36594747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com