gpt4 book ai didi

javascript - 根据内部条件以编程方式修改 map

转载 作者:行者123 更新时间:2023-12-03 21:14:22 25 4
gpt4 key购买 nike

例如我有一张这样的 map

const Map = new Map().set('123', [ [ 'foo', 'bar' ] ]).set('456', [ [ 'baz', 'qux' ], [ 'quux', 'corge' ] ]);
/*
The structure of the Map looks like this:
Map {
'123' => [ [ 'foo', 'bar' ] ],
'456' => [ [ 'baz', 'qux' ], [ 'quux', 'corge' ] ]
}
*/

我将如何删除数组中第一个嵌套元素 === 'quux' 的数组,以便它返回这个?

Map {
'123' => [ [ 'foo', 'bar' ] ],
'456' => [ [ 'baz', 'qux' ] ]
}

我知道如何删除该项目

Map.set('456', (Map.get('456')).filter(array => array[0] !== 'quux'));

但这只是因为我知道哪个键('456')中有带有'quux'的元素。我不确定我将如何以编程方式扫描 Map 然后找到相应的键然后删除该项目。 Map 中的键和值将是动态的(但结构将相同),而要搜索的元素将是静态的,即:'quux',我的意思是 Map 中的内容可能会有所不同,我只是执行搜索和删除。

最佳答案

您可以迭代映射,如果找到所需的值,则过滤数组并分配过滤后的数组。

const map = new Map([['123', [['foo', 'bar']]], ['456', [['baz', 'qux'], ['quux', 'corge']]]]);

map.forEach((v, k, m) => {
if (v.some(a => a[0] === 'quux')) {
m.set(k, v.filter(a => a[0] !== 'quux'));
}
});

console.log([...map]);

关于javascript - 根据内部条件以编程方式修改 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51467402/

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