如何正确地将一个对象与表中的每个对象进行比较?我可以做if(object == $.each(table)){ do something }
将对象与对象表进行比较的最简单方法是什么?
答案 0 :(得分:0)
如果您只想检查值列表中是否存在给定值,则可以遍历该列表:
var found = false;
for (var i = 0; i < table.length; i++) {
if (object == table[i]) {
found = true;
break; // no need to keep looping
}
}
if (found === true) {
// the value was found in the collection
}
根据object
和table
的不同,您可能需要比较特定属性,而不是整个对象。例如:
if (object.someKeyValue === table[i].someKeyValue)
“相等”的定义并不总是一件简单的事情,在简单标量值的范围之外,你几乎负责定义什么使任何两个对象“相等”。如果必须比较多个字段,可以将其抽象为一个内部比较它们的函数:
if (areEqual(object, table[i]))
(当然,你可能会给出更有意义的名字,这只是与问题中人为的例子保持一致。)
最终,整体结构确实会是一样的。给定值和值集合,您将检查集合中的内容并将其内容与要查找(或未找到)匹配的值进行比较。