我有一个像这样的数组:
var myarray = [
{"scaleId":"001","currentWeight":0.200}
{"scaleId":"002","currentWeight":0.300},
{"scaleId":"001","currentWeight":0.255},
{"scaleId":"002","currentWeight":0.000},
{"scaleId":"003","currentWeight":0.340},
]
并且我想保留具有唯一scaleId的对象。因此,对于上面的示例,输出将是这样(如果scaleId是重复的,则可以保留任何随机对象):
myarray = [
{"scaleId":"001","currentWeight":0.200}
{"scaleId":"002","currentWeight":0.300},
{"scaleId":"003","currentWeight":0.340},
]
我已经在我的应用程序中使用了下划线库,所以我对使用下划线的实现很好。我想出了一个解决方案,但未按预期工作。因此,任何帮助都会很棒。
您可以使用reduce
var myarray = [{
"scaleId": "001",
"currentWeight": 0.200
},
{
"scaleId": "002",
"currentWeight": 0.300
},
{
"scaleId": "001",
"currentWeight": 0.255
},
{
"scaleId": "002",
"currentWeight": 0.000
},
{
"scaleId": "003",
"currentWeight": 0.340
}
]
let data = myarray.reduce((acc, curr) => {
if (!acc[curr.scaleId]) {
acc[curr.scaleId] = curr
}
return acc;
}, {});
console.log(Object.values(data))