如果数组中有两个 JSON 对象对特定字段具有相同的值,那么我想将它们标记为重复。我想删除其中一个。同样,当有多个重复时,我只想保留最后一个对象(最新的)。如果输入:
names_array = [
{name: "a", age: 15},
{name: "a", age: 16},
{name: "a", age: 17},
{name: "b", age: 18}
{name: "b", age: 19}];
我想要的输出是
names_array_new =
{name: "a", age: 17},
{name: "b", age: 19}];
我搜索过这个,但只找到了如何在整个对象相同时删除重复项。
最佳答案
应该这样做:
names_array = [
{name: "a", age: 15},
{name: "a", age: 16},
{name: "a", age: 17},
{name: "b", age: 18},
{name: "b", age: 19}];
function hash(o){
return o.name;
}
var hashesFound = {};
names_array.forEach(function(o){
hashesFound[hash(o)] = o;
})
var results = Object.keys(hashesFound).map(function(k){
return hashesFound[k];
})
hash
函数决定哪些对象是重复的,hashesFound
对象将每个哈希值与生成该哈希的最新对象一起存储,结果
数组包含匹配的对象。
关于javascript - 通过数组中每个 JSON 对象中的值从 JSON 数组中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31962567/