数组判断对象内的值是否重复

今天开发遇到一个需求,需要判断输入的手机号不能重复

image
// 数据格式是这样的
smsConfig: [
  {
    frequencyType: '',
    phone: '13100010011',
    time: 1646643359093,
  },
  {
    frequencyType: '',
    phone: '13100010011',
    time: 1646643366327,
  },
],

// 我想了循环2次的办法 但是觉得代码太多 所以使用了es6的Set对象方法
  const smsArr = smsConfig.map(value => value.phone)
    const smsArr2 = new Set(smsArr)
  // 因为Set会自动去重 导致smsArr2的长度是1 所以可以根据这个特性来判断。
  // 如果smsArr和smsArr2的长度一样证明电话没有重复 如果不一样证明有重复的被Set自动去掉了
  if(smsArr2.size !== smsArr.length) {
    this.$message.error('接收短信手机不能重复!')
  }

你可能感兴趣的:(数组判断对象内的值是否重复)