分享一种校验数组对象属性值重复的方法
数据结构
const data = [
{
name: '小明',
age: 18
},
{
name: '小红',
age: 20
},
{
name: '小明',
age: 22
}
]
实现
/**
* @description 校验数组对象某属性的值有无重复
* @param {Array} dataArr 数组
* @param {String} key 属性名
* @param {String} keyCN 属性中文名
* @return {String}
* @example checkArrayObjectValueRepeat(data, 'name', '姓名') => "姓名不能重复" || ""
*/
function checkArrayObjectValueRepeat(dataArr, key, keyCN) {
let valArr = []
let check = ''
dataArr.some((item) => {
if (valArr.includes(item[key])) return check = `${keyCN || key}不能重复`
valArr.push(item[key])
return false
})
return check
}
}
let result = checkArrayObjectValueRepeat(data, 'name', '姓名')
if (result) return alert(result)