关于对象数组的一些方法总结

关于数组对象的一些方法总结

  • 一、判断对象数组是否重复
  • 二、复制对象数组


一、判断对象数组是否重复

根据某个属性判断对象数组中,是否含有该属性重复的对象。

let objectArr = [
	{id: 1, name: 2, age: 3}, 
	{id: 2, name: 3, age:24},
	{id: 1, name: 5, age:6}
]

function isSameKeyValue(arr, key) {
	// 1.利用map方法得到一个key值的数组
	const keyArr = arr.map(value => value[key]);
	// 2.利用set集合不重复的特性对keyArr进行去重
	const keySet = new Set(keyArr);
	// 3.若两个length相等,则证明无重复的值,则返回false,相反返回true
	return keySet.size === keyArr.length ? false : true;
}

console.log(isSameKeyValue(objectArr, 'id'));    // true
console.log(isSameKeyValue(objectArr, 'name'));  // false
console.log(isSameKeyValue(objectArr, 'age'));  // false

二、复制对象数组

很多时候,我们想要复制一个对象数组的值,如果使用 map() 或者 lodash中的 _.clone(),会发现对于数组里面的JSON对象,指针还是相同的,改变原数组时,对该复制数组是有影响的。

function copyObjectArr(arr) {
	let copyList = [];
	arr.forEach(item => {
		// 利用 {...obj} 进行对象的值的复制
		copyList.push({...item})
	})
    return copyList;
}

let list1 = copyObjectArr(list);
list1[0]['id'] = 100;
console.log(list1);
console.log(list);

关于对象数组的一些方法总结_第1张图片

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