如何判断数组中某一个对象的属性值是否是唯一的

从后台获取的数据如下,
图片描述
我想对其中的IGARDENGATEID属性进行一个判断,判断其是否是唯一,
比如现在IGARDENGATEID的值有两个,我想判断其整个数组只有一个IGARDENGATEID的时候,对其进行操作,如何完成这个判断呢?

阅读 10.3k
3 个回答

在数组元素个数不是很多的情况下:

function attrOnly(array, attr){
    var first;
    if(array.length>0){
        //获取第一个元素的对应的属性
        first = array[0][attr];
        //都跟第一个元素做比对,只要有一个不对应,那说明不是唯一属性值了
        return array.every(function(item){
            return item[attr] == first;
        });
    }
    //如果数组没数据时该返回啥,这个你自己定
    return true;
}

api every参考:https://developer.mozilla.org...

当然你还可以考虑用some:

https://developer.mozilla.org...

Array.prototype.indexOf()

let arr = [];
for(let i in data) {
    arr.push[data[i].IGARDENGATEID];
}
arr = [...new Set(arr)];//利用SET去重

arr.length=='1' ? console.log('true') : console.log('false')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏