js数组对象去重的五种方式

数组对象:

var str = [
    {name: "张三",id: 1},
	{name: "李四",id: 2},
	{name: "王五",id: 3},
	{name: "小明",id: 2},
	{name: "小红",id: 1},
		];

1、双层for循环

for(var i=0;i

2、indexOf()

var id = [];
var arr = [];
for(var i=0;i

3、for循环,利用对象属性的唯一性

var result = {};
for (var i = 0; i < str.length; i++) {
	result[str[i]['id']] = str[i];
}
console.log(result);

4、Map方法()

has方法可以判断Map对象中是否存在指定元素,有则返回true,否则返回false

set方法可以向Map对象添加新元素 map.set(key, value)

values方法可以返回Map对象值的遍历器对象

function getMap() {
	let map = new Map();
	for (let i of this.str) {
		if (!map.has(i.id)) {
			map.set(i.id, i);
		}
	}
	this.str = [...map.values()];
	console.log(this.str);
};
getMap();

5、for循环

obj中没有则添加 this.str[i].id 这个key,并把值设为true,后续相同则不添加

function removal() {
	let newArr = [];
	let obj = {};
	for (var i = 0; i < this.str.length; i++) {
		if (!obj[this.str[i].id]) {
			newArr.push(this.str[i]);
			obj[this.str[i].id] = true;
		}
	}
	console.log(newArr);
};
removal();

你可能感兴趣的:(html,javascript,css)