gpt4 book ai didi

javascript - 如何将数组中的每个元素与一个值进行比较?

转载 作者:行者123 更新时间:2023-11-28 17:24:10 25 4
gpt4 key购买 nike

我有一个array多个 objects里面。它的结构如下:

const Instructor = [
{ ID: '141',
InstructorNameAR: 'test',
InstructorNameEN: 'Mohamed Ahmed',
InstructorBriefAR: 'phd in chemistry',
InstructorBriefEN: 'phd in chemistry' },
{ ID: '140',
InstructorNameAR: 'test',
InstructorNameEN: 'Mahmoud Ahmed',
InstructorBriefAR: 'phd in chemistry',
InstructorBriefEN: 'phd in chemistry' },
]

我想添加其他objects但根据 ID 过滤重复项值。

objects 的示例我想添加:-

  const InstructorInstance = {
ID: 'ID',
InstructorNameAR: 'NAMEAR',
InstructorNameEN: 'NAMEEN',
InstructorBriefAR: 'BRIEFAR',
InstructorBriefEN : 'BRIEFEN'
}

我使用此方法按 ID 进行过滤。但它不起作用,因为它只比较 single array 的值到我提供的值。这意味着它可能是 duplicated object但仍然被添加,因为它没有检查它是否存在于每个 array element

Instructor.forEach(instance =>{
if(instance.ID !== InstructorInstance.ID){
Instructor.push(InstructorInstance);
}else{
console.log('Duplicate')
}
})

最佳答案

在判断是否有重复之前,必须先循环整个数组。您可以使用 forEach 来实现此目的,但 everysome 似乎非常适合此类工作:

const test = Instructor.every(instance => instance.ID !== InstructorInstance.ID);
if(test) {
Instructor.push(InstructorInstance);
}

这意味着如果 Instructor 中的每个对象都具有与 InstructorInstance 不同的 ID,则将 InstructorInstance 推送到 讲师

注意:您可以将测试直接放入 if 中,而无需将其存储在变量 test 中:

if(Instructor.every(instance => instance.ID !== InstructorInstance.ID)) {
Instructor.push(InstructorInstance);
}

但这看起来不像,不是吗?

关于javascript - 如何将数组中的每个元素与一个值进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51970552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com