请问大家关于这个数组对象的算法,谢谢大家?
let arr1 = [ {
"enter_warehouse_id": "6",
"goods_sn": "9110011603",
},
{
"enter_warehouse_id": "21",
"goods_sn": "8011115748541",
},
{
"enter_warehouse_id": "21",
"goods_sn": "8033129700",
},
{
"enter_warehouse_id": "21",
"goods_sn": "8011400300",
},
{
"enter_warehouse_id": "21",
"goods_sn": "8011400200",
}
]
我想判断这个数组对象中,enter_warehouse_id 这个值是否是唯一,如果是唯一,就返回true 如果还存在不相等的 就返回false 就好比arr1 数组中 因为 enter_warehouse_id 存在6 和 21
所以存在不相等情况,就返回false
回答:
arr1.every((item, index, arr) => item.enter_warehouse_id === arr[0].enter_warehouse_id)
回答:
function isUnique(arr) { const uniqueIds = arr.reduce((set, obj) => {
set.add(obj.enter_warehouse_id);
return set;
}, new Set());
return uniqueIds.size === 1;
}
const arr1 = [
{
enter_warehouse_id: "21",
goods_sn: "8011115748541",
},
{
enter_warehouse_id: "21",
goods_sn: "8033129700",
},
{
enter_warehouse_id: "21",
goods_sn: "8011400300",
},
{
enter_warehouse_id: "21",
goods_sn: "8011400200",
},
];
console.log(isUnique(arr1))
回答:
const checkIsEnterWarehouseIdUnique = (arr) => { const len = arr.length
// TODO length 为0时的返回值,根据自身业务特点赋值
if (len === 0) {
return
} else if (len === 1){
return true
}
const firstItemId = arr[0].enter_warehouse_id
for (let i = 1; i < len; i++){
if (arr[i].enter_warehouse_id !== firstItemId) {
return false
}
}
return true
}
性能应该强点,哈哈哈
回答:
new Set(arr1.map(item=>item.enter_warehouse_id)).size > 1
回答:
可以使用:
arr1.every((item, index, arr) => item.enter_warehouse_id === arr[0].enter_warehouse_id)
也可以
arr1.find((item, index, array) => item.enter_warehouse_id !== array[0].enter_warehouse_id)
原理都是一样的
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
以上是 请问大家关于这个数组对象的算法,谢谢大家? 的全部内容, 来源链接: utcz.com/p/933864.html