0
点赞
收藏
分享

微信扫一扫

js数组对象中获取不重复项

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>删除同一个数组中所有的相同对象(不是去重)</title>

</head>

<body>

</body>

<script type="text/javascript">

let arr = [{

name: "张三",

id: "1"

},

{

name: "李四",

id: "2"

},

{

name: "李四",

id: "2"

},

{

name: "小兰",

id: "3"

},

{

name: "张三",

id: "1"

},

{

name: "张三",

id: "1"

}

]


let list = fun(arr);

console.log(list, "结果")


function fun(arr) {

let newArr = [...arr];

let indexArr = [];

arr.forEach((s, i) => {

let count = 0;

newArr.forEach((m, j) => {

if (arr[i].name == newArr[j].name && arr[i].id == newArr[j].id) { //当属性值都相同时,打印索引位置

count++;

}

})

// console.log("索引:",i,"相同次数:",count)

if (count > 1) { //内层循环结束,当count>1,说明此索引为对象是重复的

indexArr.push(i);

}

})

// console.log(indexArr) //相同对象索引数组

let flag = -1;

for (var i = 0; i < indexArr.length; i++) { //删除一次,索引位

flag++;

if (flag == 0) {

newArr.splice(indexArr[i], 1);

} else {

newArr.splice(indexArr[i] - flag, 1); // 每次删除,需要删除的索引位就要减去1

}

}

return newArr;

}

</script>

</html>

举报

相关推荐

0 条评论