在JavaScript中如何过滤Map中的null值并获取指定条目?
在JavaScript中过滤Map的null值
当然可以,你可以通过以下几种方式实现Map的null值过滤:
方法一:借助数组转换与Map构造函数
先将Map转为键值对数组,过滤掉值为null的条目后,重新构造新Map:
const myMap = new Map([ ['id1', 'value1'], ['id2', null], ['id3', 'value3'], ['id4', null], ]); // 过滤值为null的条目,保留非null项(对应id1、id3) const filteredMap = new Map( Array.from(myMap).filter(([key, value]) => value !== null) ); console.log(filteredMap); // Map(2) { 'id1' => 'value1', 'id3' => 'value3' }
如果你的实际需求是保留值为null的条目(即得到id2、id4),只需调整过滤条件:
const filteredMap = new Map( Array.from(myMap).filter(([key, value]) => value === null) ); console.log(filteredMap); // Map(2) { 'id2' => null, 'id4' => null }
方法二:遍历原Map手动构建新Map
通过forEach遍历原Map,判断值是否符合要求,将符合条件的键值对添加到新Map中:
const filteredMap = new Map(); myMap.forEach((value, key) => { if (value !== null) { filteredMap.set(key, value); } });
说明
你提到需要得到仅包含id1和id4的Map,但原Map中id4的值为null。如果是要排除值为null的条目,id4会被过滤掉,若这是笔误,可根据实际需求调整过滤条件。
内容的提问来源于stack exchange,提问作者myTest532 myTest532
相关产品推荐
相关产品推荐

