我正在尝试使用数组内的另一个对象来过滤一个对象。
更准确地说,我试图将数组内对象的键与主对象的键进行比较。如果值相同,我想返回这些键对应的值。
这是一个例子:
var a = {
"maths":"A++",
"literature":"C-",
"sports":"B+",
"biology":"D",
"chemistry":"A",
"english":"A+",
"physics":"C+"
}
var b = [{
"maths":"Mathematics",
"biology":"Biology",
"physics":"Physics"
}]
我想检查对象 b
中的任何键是否在对象 a
内部,如果是,我想将它们的值返回到数组中。例如,我想返回 ["A++","D","C+"]
我尝试使用 filter
和 Array.prototype.some
但我什么也没弄清楚。关于我应该如何实现这一目标有什么建议吗?
最佳答案
首先创建一个包含 b
内所有键的数组或 Set,然后使用 .map
访问 a
对象上的每个键:
var a = {
"maths":"A++",
"literature":"C-",
"sports":"B+",
"biology":"D",
"chemistry":"A",
"english":"A+",
"physics":"C+"
}
var b = [{
"maths":"Mathematics",
"biology":"Biology",
"physics":"Physics"
}];
const keys = b.flatMap(Object.keys);
const arr = keys.map(key => a[key]);
console.log(arr);
关于javascript - 使用另一个数组的对象键过滤一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60593352/