我有一个具有相同值的数组,需要删除所有其他值



for example:

var arr = {
"servicegroup": [{
"name": "yy",
"description": "yy",
"isvalid": 1
}, {
"name": "yy",
"description": "yy",
"isvalid": 1]
}
}

您可以利用数组的拼接功能并删除不需要的元素:

像这样:

var arr = {
"servicegroup": [{
"name": "yy",
"description": "yy",
"isvalid": 1
}, {
"name": "yy",
"description": "yy",
"isvalid": 1
}]
}
console.log('Original Array ==>', arr);
for (let i = 1; i < arr.servicegroup.length; i++) {
let stringifiedFirstObject = JSON.stringify(arr.servicegroup[0]);
let stringifiedIthObj = JSON.stringify(arr.servicegroup[i]);
if (stringifiedFirstObject === stringifiedIthObj) {
arr.servicegroup.splice(i, 1);
}
}
console.log('Modified Array ==>', arr);

算法:-

const arr = { "servicegroup": [ { "name": "yy", "description": "yy", "isvalid": 1 }, { "name": "yy", "description": "yy", "isvalid": 2 } ] };
const source = arr[ 'servicegroup' ];
const obj = {};
const res = [];
let i = 0;
let count = 0;
for (let i = 0; i < source.length; i++) {
const el = source[ i ];
if (count === 0) {
obj[ el.name ] = true;
*emphasized text*count++;
}
if (obj[ el.name ]) {
res.push(el);
delete obj[ el.name ];
}
}
console.log(res);

最新更新