请问大家关于这个数组对象的算法,谢谢大家?

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

回到顶部