Javascript:检测对象数组中两个键的组合的最佳方法是什么
让我们说:Javascript:检测对象数组中两个键的组合的最佳方法是什么,javascript,arrays,object,Javascript,Arrays,Object,让我们说: var person = [ {"classKey": 1, "teacherKey": 1}, {"classKey": 2, "teacherKey": 1}, {"classKey": 2, "teacherKey": 1} ] 如何防止添加重复记录,甚至如何删除重复的组合对 谢谢您要做的主要事情是唯一地标识每个条目 一种非常快速的方法是将值连接成一个分隔字符串,例如 let key = [entry.classKey, entry.teacher
var person = [
{"classKey": 1, "teacherKey": 1},
{"classKey": 2, "teacherKey": 1},
{"classKey": 2, "teacherKey": 1}
]
如何防止添加重复记录,甚至如何删除重复的组合对
谢谢您要做的主要事情是唯一地标识每个条目 一种非常快速的方法是将值连接成一个分隔字符串,例如
let key = [entry.classKey, entry.teacherKey].join(':')
然后,您可以使用它来跟踪现有条目和。例如,使用
const person=[
{“classKey”:1,“teacherKey”:1},
{“classKey”:2,“teacherKey”:1},
{“classKey”:2,“teacherKey”:1}
]
const filtered=person.filter(函数(条目){
let key=[entry.classKey,entry.teacherKey].join(“:”)
return!this.has(key)&!!this.add(key)
},新集合())
console.info(已过滤)
因此,您需要在每个索引上循环,查看是否存在匹配的可能重复的yes,但使用两个不同的键@epascarello,所以您需要同时检查这两个索引。。。如果(person[i].classKey==X&&person[i].teacherKey==Y){console.log(我们有一个匹配项
)}@sectus OP需要使用某种哈希/校验和来唯一地标识每个条目,所以我认为这与我以前没有使用过的代码不太一样。。陛下有意思。。if做什么?如果(此[键])返回false?是否意味着它存在?@BrianRuchiadi我已将其更改为使用集合
来跟踪现有条目。我希望这更有意义