需求:判断对象数组中是否存在重复项
解决思路:根据数组去判断是否有重复项。
首先将对象数组转成数组(提取重复的选项)然后判断数组是否存在重复项即可。
注:此方法适用于单个决定性条件导致重复的对象,多个条件的 可以在此方法上优化
原始对象数组:
[{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');}