【发布时间】:2018-07-22 17:01:46
【问题描述】:
例如,我有一张这样的地图
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 中的键和值将是动态的(但结构将是相同的),而要搜索的元素将是静态的,即:'quux',我的意思是 Map 中的内容可能会有所不同,我只是在执行搜索和删除。
【问题讨论】:
-
使用循环。您还应该了解
forEach()、map()、filter()和reduce()等数组函数。 -
你使用
Map而不是一个对象有什么原因吗? -
@Code-Apprentice 我正在使用一个使用 Maps 的库,所以我别无选择,只能使用 Map 方法来处理它。
标签: javascript dictionary ecmascript-6