我的CodeCademy任务有问题。我要重新创建findKey
lodash库方法。这里有一些操作步骤,但是我陷入了困境,尤其是在第5点。
_
对象添加一个名为findKey
的方法。object
和predicate
。我们会
将我们的predicate
函数参数命名为predicate
,因为这是
Lodash文档中使用的名称。for ... in
循环遍历每个键
在object
中。value
的变量并将其设置为等于
object
中当前键的值。predicateReturnValue
并将其设置为等于调用结果
predicate
与value
。if
语句检查
如果predicateReturnValue
是真实的。如果是,则返回当前密钥
通过该方法。undefined
来解决所有不存在的情况
真实值是从predicate
返回的。这是我的无效代码:
findKey(object, predicate) {
for (let key in object) {
let value = object[key];
let predicateReturnValue = predicate(value);
if (predicateReturnValue === 'true') {
return value;
};
};
return undefined;
}
感谢您的帮助!
答案 0 :(得分:0)
您需要对predicate
的呼叫进行真实检查后返回密钥。
function findKey(object, predicate) {
for (let key in object) {
let value = object[key];
let predicateReturnValue = predicate(value);
if (predicateReturnValue) { // just take the value
return key; // return key
}
}
}
const
isStrictEqual = a => b => a === b,
object = { a: 'foo', b: 'bar', c: 'baz' }
console.log(findKey(object, isStrictEqual('bar')));
console.log(findKey(object, isStrictEqual('cat')));