gpt4 book ai didi

javascript - 过滤掉嵌套列表中具有特定键的字典元素

转载 作者:行者123 更新时间:2023-12-02 22:38:04 25 4
gpt4 key购买 nike

我有一个嵌套列表,如下所示:

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函数来过滤数据中的每个字典列表 并返回相同的结构,但不包含存在 item 键的 dictionary

 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
});

如何构建一个内联函数来在子列表中进行过滤并在过滤后返回另一个(过滤后的)列表和/或计数

抱歉,这个简单的问题,我是 JS 的新手,我被这个简单的任务困住了。

最佳答案

您可以使用Object.prototype.hasOwnProperty进行检查,以过滤掉具有item属性的对象。

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}
] ];


let out = data.map(arr => arr.filter(e => !e.hasOwnProperty('item')));
console.log(out)

关于javascript - 过滤掉嵌套列表中具有特定键的字典元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58680730/

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