【发布时间】:2020-08-06 15:44:14
【问题描述】:
我有一个对象来验证对象数组中的任何一个是否不相同
const obj = {
question: "What is your dog name?",
answer: "Browny"
}
const array = [
{
question: "What is your name?",
answer: "Diana"
},
{
question: "What is your dog name?",
answer: "Browny"
}
]
我尝试过滤和比较它们,但它只检查第一个 obj
array.filter(arr => {
if (arr.question !== obj.question) response.status(409).json({message: 'Wrong question chosen'})
if (arr.answer !== obj.answer) response.status(409).json({message: 'Please type the right answer'})
else response.status(200)
})
我查看了这个JS: Filter array of objects by array, when object key is an array of objects,但它让我有点困惑
希望大家能帮帮我,先谢谢了!
【问题讨论】:
-
对象比较基于对象标识。两个不同的对象,即使它们包含相同的属性名称和属性值,也永远不会相互
===。 -
filter应该返回一个与调用它的数组相同类型的数组。任何其他行为都是出乎意料的,并且可能会导致错误。似乎您不想过滤太多,而是检查数组中的任何元素是否与您的示例相同。
标签: javascript node.js ecmascript-6