我有一个键/值对数组。键有时会重复,并且每个键的值始终是唯一的。
我想将每个唯一的键压缩为一个对象,这样我就有一个键和一个关联值的数组作为属性。
有没有方便的 JavaScript 函数可以做到这一点?
This
pairArray = [
{ key: "a", value: "1" },
{ key: "a", value: "2" },
{ key: "b", value: "1" },
{ key: "b", value: "2" },
];
Becomes
objectArray = [
{ key: "a", values: ["1", "2"] },
{ key: "(", values: ["1", "2"] }
];
您可以简单地使用创建地图Array.reduce()
和你的key
你的对象的属性作为你的地图的关键,Object.values()
在该地图上将为您提供所需的结果:
假设您的预期输出中有拼写错误。您可以尝试以下操作:
const pairArray = [ { key: "a", value: "1" }, { key: "a", value: "2" }, { key: "b", value: "1" }, { key: "b", value: "2" }, ];
const result = Object.values(pairArray.reduce((acc, {key, value})=>{
acc[key] = acc[key] || {key, values : []};
acc[key].values.push(value);
return acc;
},{}));
console.log(result);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)