Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:检测对象数组中两个键的组合的最佳方法是什么_Javascript_Arrays_Object - Fatal编程技术网

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我已将其更改为使用
集合
来跟踪现有条目。我希望这更有意义