转换lodash';将pickby插入到javascript中

转换lodash';将pickby插入到javascript中,javascript,lodash,Javascript,Lodash,如何在javascript中创建lodash的pickby函数?我在“你不需要洛达斯”中找到了以下一个 但是在其他实现中您可以添加一个谓词函数,如所述,并使用条目、过滤数据和构建一个新对象 function pickBy(object, predicate = v => v) { return Object.assign( ...Object .entries(object) .filter(([, v]) =>

如何在javascript中创建lodash的pickby函数?我在“你不需要洛达斯”中找到了以下一个


但是在其他实现中

您可以添加一个谓词函数,如所述,并使用条目、过滤数据和构建一个新对象

function pickBy(object, predicate = v => v) {
    return Object.assign(
        ...Object
            .entries(object)
            .filter(([, v]) => predicate(v))
            .map(([k, v]) => ({ [k]: v }))
    );
}

您可以添加谓词函数,如所述,并使用条目、过滤数据和构建新对象

function pickBy(object, predicate = v => v) {
    return Object.assign(
        ...Object
            .entries(object)
            .filter(([, v]) => predicate(v))
            .map(([k, v]) => ({ [k]: v }))
    );
}
要创建,可以使用。如果谓词返回值的真实答案,则将键和值分配给结果对象

注意:如果您需要
\uuu.pickBy()
,并且不希望导入整个lodash包,则可以导入

函数pickBy(对象,谓词=v=>v){ 常量obj={}; for(对象的常量[键,值]。条目(对象)){ if(谓词(值))obj[key]=值; } 返回obj; } log(pickBy({a:1,b:0,c:3})); log(pickBy({a:1,b:0,c:3},v=>v<3))要创建,可以与一起使用。如果谓词返回值的真实答案,则将键和值分配给结果对象

注意:如果您需要
\uuu.pickBy()
,并且不希望导入整个lodash包,则可以导入

函数pickBy(对象,谓词=v=>v){ 常量obj={}; for(对象的常量[键,值]。条目(对象)){ if(谓词(值))obj[key]=值; } 返回obj; } log(pickBy({a:1,b:0,c:3})); log(pickBy({a:1,b:0,c:3},v=>v<3))正在

var object = { 'a': 1, 'b': '2', 'c': 3 };
和回调一个仅应用于对象(u.isNumber)值的方法:

存在

和回调一个仅应用于对象(u.isNumber)值的方法:


当对象为
{}
时,Nina的解决方案失败。 这是我的:

const pickBy = (object, predicate = v => v) =>
  Object.entries(object)
    .filter(([k, v]) => predicate(v))
    .reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {});

当对象为
{}
时,Nina的解决方案失败。 这是我的:

const pickBy = (object, predicate = v => v) =>
  Object.entries(object)
    .filter(([k, v]) => predicate(v))
    .reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {});

您错过了可选谓词。但是为什么要进行所有检查呢?Object.keys(obj).reduce((prev,x)=>callback(obj[x])?{……prev[x]:obj[x]}:prev,{});您错过了可选谓词。但是为什么要进行所有检查呢?Object.keys(obj).reduce((prev,x)=>callback(obj[x])?{……prev[x]:obj[x]}:prev,{});