Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从映射中删除特定值_Javascript_Typescript - Fatal编程技术网

Javascript 如何从映射中删除特定值

Javascript 如何从映射中删除特定值,javascript,typescript,Javascript,Typescript,我有一张这样的地图: 我想从映射值内的数组中删除{frequency:“WN”} 我正试图以这种方式删除它,但未删除值: const map2=new Map(); 集合(0,[{frequency:DN},{frequency:WN},{frequency:KK}]); 集合(1,[{frequency:DN},{frequency:WN},{frequency:KK}]); 常量strNanFrq=['DN','WN','MN','QN','YN']; for(tsRequest of m

我有一张这样的地图:

我想从映射值内的数组中删除
{frequency:“WN”}

我正试图以这种方式删除它,但未删除值:

const map2=new Map();
集合(0,[{frequency:DN},{frequency:WN},{frequency:KK}]);
集合(1,[{frequency:DN},{frequency:WN},{frequency:KK}]);
常量strNanFrq=['DN','WN','MN','QN','YN'];
for(tsRequest of map2.values()){
tsRequest.filter((请求,索引)=>{
如果(标准要求包括(要求[频率])){
t请求拼接(索引1);
}
});
}

console.log(Array.from(map2.values());//仍然具有map中的所有值
使用前一个数组的过滤数组再次设置map值。 如果映射中有更多数组,只需使用forEach循环映射键值对,检查该值是否实际为数组,并使用过滤器重置它:

var map2=newmap();
集合(0,[{frequency:DN},{frequency:WN},{frequency:KK}]);
集合(1,[{frequency:DN},{frequency:WN},{frequency:KK}]);
map2.forEach((val,key)=>{
if(数组isArray(val)){
map2.set(key,val.filter(el=>el.frequency!=='WN'));
}
});
console.log(map2.values());

您可以循环通过
映射
过滤器
每个值,以删除
strNanFrq
中包含的
频率
对象。为
strNanFrq
创建一个函数,并检查该函数是否设置了当前对象的频率

const map=新映射([
[0,[{frequency:DN},{frequency:WN},{frequency:KK}]],
[1,[{频率:“YN”},{频率:“AA”},{频率:“BB”}]],
]);
const strNanFrq=新集合(['DN','WN','MN','QN','YN']);
for(映射的常量[键,值])
map.set(key,value.filter(v=>!strNanFrq.has(v.frequency)))
console.log(map.get(0))

console.log(map.get(1))
我可能有更多的键。您可以有更多的数组,其中包含属性为
频率的对象,并且要从每个频率中删除值为
WN
?如果
频率
包含在
strNanFrq
数组中,您要删除吗?所以,
frequency:“DN”}
也应该被删除?这应该可以。有人能做一个片段吗?@jonaswillms
splice
filter
可能不在同一个数组上work@adiga是的,如果匹配的话remove@adiga不知道为什么它不应该。。。一小条