判断一个数组中所有对象的某个属性值是否相同

DkahU
  • 8

刚玩js,小白一枚,请大佬多多指教。
数据是这样的

 let mobilePhoneList = [
        {
          number: '123',
        }, {
          number: '123456',
        }, {
          number: '123456789',
        },
      ],

这个数组里可能会有很多数据。
我想实现的是,判断每个对象里number属性的值,只要其中任何两个相等就返回true,否则返回false。(并不是其他number只跟第一个或第二个相比较,是所有的number都要相互比较)

回复
阅读 832
4 个回答
✓ 已被采纳
let mobilePhoneList = [
        {
          number: '123',
        }, {
          number: '123456',
        }, {
          number: '123456789',
        },
      ]
const res = mobilePhoneList.some(r => mobilePhoneList.filter(r1 => r1.number===r.number).length > 1)
console.log(res)
function hasEqualNumber(list) {
    const nums = new Set
    for(const item of list) {
        if(nums.has(item.number)) return true;
        nums.add(item.number)
    }
    return false;
}
Honye
  • 4
新手上路,请多包涵
function hasQqualItems (objArr) {
    let temp = {};
    for (const obj of objArr) {
        if (temp[obj.number]) {
            return true;
        }
        temp[obj.number] = true;
    }
    temp = null;
    return false;
}
 let mobilePhoneList = [
        {
          number: '123',
        },{
          number: '123456',
        }, {
          number: '123456',
        }, {
          number: '123456789',
        },
      ];
mobilePhoneList.some((cur,idx,arr)=>arr.slice(idx+1).find(item=>cur.number==item.number));

image.png
image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏