我正在尝试根据一系列匹配属性将一组字符串合并到一个数组中,并删除重复项。
我当前的数组:
{id: "12", value: "Option 1"},
{id: "55", value: "Option A"},
{id: "55", value: "Option B"},
{id: "55", value: "Option C"},
{id: "55", value: "Option D"},
{id: "106", value: "Option 1"}
我想合并所有 ID 为“55”的项目,这样我的数组将如下所示:
{id: "12", value: "Option 1"},
{id: "55", value: "Option A, Option B, Option C, Option D"},
{id: "106", value: "Option}
我只能设法使用 for 循环合并前 2 项并检查 -1 兄弟项,如果不严重膨胀我的代码就无法解决这个问题。
如有任何建议,我们将不胜感激。
最佳答案
您可以将对象用作查找表,同时将结果并行存储在数组中:
const lookup = {}, result = [];
for( const {id, value} of input ){
if(lookup[id]){
lookup[id].value += "," + value;
}else{
result.push( lookup[id] = {id, value} );
}
}
这是相当新的 javascript,但它 works在现代引擎上;)
关于javascript - 根据其他值合并数组中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47082471/