gpt4 book ai didi

javascript - array.filter 按对象属性,参数未定义

转载 作者:行者123 更新时间:2023-11-28 11:49:25 25 4
gpt4 key购买 nike

我正在尝试编写一个带有 2 个参数的过滤函数:id 类型和实际id 值。使用这些 ID,我想过滤一个对象数组。

例如,这里我试图获取一个仅包含名称为 'Mike' 的值的新数组。 .

对象:

var sample = [
{ name: 'Mike'},
{ name: 'John'}
];

过滤功能:

function filterById(obj, parameter, id) {
return obj.parameter == id;
}

这个:

console.log(sample.filter(filterById(name, 'Mike')));

返回名称未定义。

我还需要传入实际的数组吗?是否可以将参数传递到过滤器函数中?

最佳答案

您还需要将“参数”作为字符串传递,并使用方括号表示法,为了使这一切正常工作,您的 filterById 函数将本身返回与 Array.prototype.filter 使用的函数匹配的函数:

var sample = [
{ name: 'Mike'},
{ name: 'John'}
];

function filterById(parameter, id) {
return function(obj){
return obj[parameter] == id;
}
}

console.log(sample.filter(filterById('name', 'Mike')));

关于javascript - array.filter 按对象属性,参数未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40635366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com