需求:判断对象数组中是否存在重复项
解决思路:根据数组去判断是否有重复项。
- 首先将对象数组转成数组(提取重复的选项)
- 然后判断数组是否存在重复项即可。
注:此方法适用于单个决定性条件导致重复的对象,多个条件的 可以在此方法上优化
原始对象数组:
[
{
id: 1,
name: '数学'
},
{
id: 2,
name: '语文'
},
{
id: 3,
name: '英语'
},
{
id: 4,
name: '体育'
},
{
id: 3,
name: '英语'
},
]
转变成:
[
{
id: 1,
name: '数学'
},
{
id: 2,
name: '语文'
},
{
id: 3,
name: '英语'
},
{
id: 4,
name: '体育'
}
]
实现:
// 找到导致重复的元素,ID
// 将所有对象的ID重新组成数组
const ids = this.testChooseList.map(value => value.id);
// 通过Set去除数组重复项
const idsSet = new Set(ids);
// 比较两个数组的长度来判断是否存在重复项
if ([...idsSet].length === ids.length) {
console.log('no');
} else {
console.log('yes');
}