我正在尝试根据以下 json 的 id 删除重复条目,但似乎我无法正确解析 JSON,我的 JSON 数组如下:
[ '{"entries":[{"name":"sample","id":"8d"},{"name":"sample","id":"57"},{"name":"sample","id":"acc"}]}\n',
'{"entries":[{"name":"sample","id":"8d"},{"name":"sample","id":"50"},{"name":"sample","id":"ac"}]}\n',
'{"entries":[{"name":"sample","id":"8d"},{"name":"sample","id":"50"},{"name":"sample","id":"ac"}]}\n',
'{"entries":[{"name":"sample","id":"8d"},{"name":"sample","id":"50"}]}\n',
]
输出应该是
{"entries":[{"name":"sample","id":"8d"},{"name":"sample","id":"57"},{"name":"sample","id":"acc"}]}
我的代码如下:
removeDups: async function(listent){
for (i = 0; i < listent.length; i++){
console.log(listent.length)
for (j = 0; j < listent.length; j++){
console.log(listent[j])
}
var standardsList = this.arrUnique(listent);
console.log("standard", standardsList)
}
},
arrUnique: function (arr) {
var cleaned = [];
arr.forEach(function(itm) {
var unique = true;
cleaned.forEach(function(itm2) {
if (_.isEqual(itm, itm2)) unique = false;
});
if (unique) cleaned.push(itm);
});
return cleaned;
}
最佳答案
希望这对你有用:https://jsfiddle.net/c0pkw5ju/
核心功能是:
var val = array.reduce(function (acc, val) {
return acc.concat(val.entries)
}, [])
console.log(_.unique(val, function (v) {
return v.id
}))
基本上,您需要将您的 \n
分隔的 JSON 响应转换为可以按指示使用的 JS 对象。如果这没有帮助,请告诉我。
输出:
[
{
"name": "sample",
"id": "8d"
},
{
"name": "sample",
"id": "57"
},
{
"name": "sample",
"id": "acc"
},
{
"name": "sample",
"id": "50"
},
{
"name": "sample",
"id": "ac"
}
]
更新: 假设响应是:
var response = ['{"entries":[{"name":"sample","id":"8d"},{"name":"sample","id":"57"},{"name":"sample","id":"acc"}]}\n',
'{"entries":[{"name":"sample","id":"8d"},{"name":"sample","id":"50"},{"name":"sample","id":"ac"}]}\n',
'{"entries":[{"name":"sample","id":"8d"},{"name":"sample","id":"50"},{"name":"sample","id":"ac"}]}\n',
'{"entries":[{"name":"sample","id":"8d"},{"name":"sample","id":"50"}]}\n',
]
如果您按照此处指示处理响应:
var array = response.map(function(val) {
return JSON.parse(val.trim())
})
那么核心功能应该可以工作了。
关于node.js - 如何从 Nodejs 中的 JSON 对象数组中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52788667/