【发布时间】:2019-11-15 03:15:36
【问题描述】:
我正在做一个算法,该函数有 2 个参数,一个数组和另一个对象。如果数组中对象中的一个值与第二个参数的一个值匹配,那么我需要返回该数组对象。 我的退货声明不起作用
function whatIsInAName(collection, source) {
let r = Object.values(source);
console.log(r);
for (let i = 0; i < collection.length; i++) {
console.log(Object.values(collection[i]));
if (Object.values(collection[i]) == r) {
return Object.values(collection[i])
}
}
}
样本测试:
whatIsInAName([{ first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" }], { last: "Capulet" }));
return 语句不起作用,所以我什至无法判断我的逻辑是否错误或写入
【问题讨论】:
-
您正在比较内存中的引用,而不是两个对象之间的键和值。
-
Object.values(collection[i]) == r将返回false,因为无法像这样比较数组。
标签: javascript