分享一种校验数组对象属性值重复的方法
数据结构

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)
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐