【发布时间】:2026-02-01 03:40:01
【问题描述】:
我有一个嵌套列表,如下所示:
var data = [[
{item: 'top_X', pos:1},
{name: 'person1', value: 1},
{name: 'person2', value: 1}
],[
{item: 'top_Y', pos:1},
{name: 'person1', value: 2},
{name: 'person2', value: 2}
],[
{item: 'top_Z', pos:1},
{name: 'person1', value: 1}
] ];
在js 中,我正在尝试使用 lambda 函数过滤掉 data 中的每个 dictionary list 并返回相同的结构但没有 dictionary 其中@987654326 @键存在。
all = data.map(x => {
return x; // returns the whole list
});
//
fileredOutList = data.map(x => {
return x.filter ?? ..
}); // Expected output list:
// data = [[{name: 'person1', value: 1},
// {name: 'person2', value: 1}],
// [{name: 'person1', value: 2},
// {name: 'person2', value: 2}],
// [{name: 'person1', value: 1}]]
fileredOutListCount = data.map(x => {
// return x.filter ?? .. .count()
// return count elements after filter --> 3
});
如何构建一个内联函数来过滤子列表并在过滤后返回另一个(过滤的)列表和/或count。
对不起,这个简单的问题,我是JS 的新手,我被这个简单的任务困住了。
【问题讨论】:
-
您的要求/问题太复杂了。您只需要一个用于
.filter()回调的函数(命名或匿名)。如果您调用.filter()的数组存储在另一个数组或对象或某些自定义“事物”中,则无关紧要。它仍然只是一个数组。 -
只测试
.filter()回调中是否存在item属性(return typeof x.item === "undefined") -
@Andreas
return x.item === "undefined"或return !(x.item)会做同样的事情,typeof检查在这里没用。
标签: javascript node.js list lambda filter