简介
在本实验中,我们将探索 JavaScript 编程,并学习如何一起使用 Array.prototype.reduce()、Array.prototype.filter() 和 Array.prototype.map() 方法来创建一个函数,该函数根据条件过滤对象数组,并过滤掉未指定的键。本实验将有助于提高我们对 JavaScript 中函数式编程的理解,以及如何以简洁高效的方式操作对象数组。
根据条件和键过滤对象
要根据条件过滤对象数组,同时过滤掉未指定的键,请使用 reducedFilter() 函数。
以下是具体步骤:
使用
Array.prototype.filter()根据谓词fn过滤数组,以便返回条件返回真值的对象。对过滤后的数组使用
Array.prototype.map()以返回新对象。使用
Array.prototype.reduce()过滤掉未作为keys参数提供的键。
const reducedFilter = (data, keys, fn) =>
data.filter(fn).map((el) =>
keys.reduce((acc, key) => {
acc[key] = el[key];
return acc;
}, {})
);
以下是 reducedFilter() 函数的一个示例用法:
const data = [
{
id: 1,
name: "john",
age: 24
},
{
id: 2,
name: "mike",
age: 50
}
];
reducedFilter(data, ["id", "name"], (item) => item.age > 24);
// 输出:[{ id: 2, name:'mike'}]
要开始练习编码,请打开终端/SSH 并输入 node。
总结
恭喜你!你已经完成了“过滤匹配值和未指定值”实验。你可以在 LabEx 中练习更多实验来提升你的技能。