给定数组 [{fruit1:"apple"},{fruit2:"banana"},{fruit3:"apple"}]
我将如何删除具有重复值的元素。在此示例中,我只想保留具有“apple”的键值对之一,从数组中删除该元素。
最佳答案
您可以将数组缩减为 Map .对于每个对象,使用 Object.entries()
提取键/值对.除非 Map 的键(例如 apple
)已经存在,否则使用该值作为新 Map 条目的键,并使用原始键作为值。然后您可以使用 Array.from()
将其转换回数组, 并切换键和值:
const data = [{fruit1:"apple"},{fruit2:"banana"},{fruit3:"apple"}];
const result = Array.from(
data.reduce((m, o) => {
const [k, v] = Object.entries(o)[0];
return m.has(v) ? m : m.set(v, k);
}, new Map()),
([k, v]) => ({ [v]: k })
);
console.log(result);
关于javascript - 如果存在重复值,则从数组中删除一个对象。 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52432227/