【发布时间】:2021-08-09 02:18:04
【问题描述】:
代码只返回第一个参数中与第二个参数匹配的内容,然后检查。 link just in case
我的主要关注点是 if 语句中的“source[srcKeys[i]]”。 “srcKeys”单独返回“['last']”,但如果你在它前面添加'source',例如“source[srcKeys]”,你会得到“Capulet”。我的问题是为什么它返回“Capulet”而不是“['last']”,因为它针对 Object.keys 而不是值?
function whatIsInAName(collection, source) {
var srcKeys = Object.keys(source);
return collection.filter((obj) => {
for (var i = 0; i < srcKeys.length; i++) {
if (obj[srcKeys[i]] !== source[srcKeys[i]]) {
return false
}
}
return true;
});
}
whatIsInAName(
[
{ first: "Romeo", last: "Montague" },
{ first: "Mercutio", last: null },
{ first: "Tybalt", last: "Capulet" }
],
{ last: "Capulet" }
);
【问题讨论】:
标签: javascript