首页 > 解决方案 > 使用Javascript删除地图中的多个键集?

问题描述

嗨,我有一张由键值对组成的地图。如何删除地图中的多个键集?

地图制作部分

  // result key something like 0-119,0-110,0-118 for each entries
  this.OptionsMap.set(''+result, selectedList[index]);   


  

地图删除部分

 Const entriesd = JSON.parse(JSON.stringify(selectedList));
     for (let [key, value] of Object.entries(entriesd)) 
            {
                 if (value.key === 'AB')
                {
                  console.log('keys',value.index)
                 this.OptionsMap.delete(''+value.index);
                  
                }
               
            }

选定列表

(3) [{…}, {…}, {…}]
0: {id: "101", value: "A1B", key: "AB", index: "0-119", …}
1: {id: "130", value: "130", key: "AB", index: "0-110", …}
2: {id: "130", value: "130", key: "AB", index: "0-118", …}

现在在 console.log 我可以得到我的索引,如 0-119,0-110,0-118 但在删除部分如何删除多个索引?请帮我。提前致谢。

标签: javascriptarrayslistobjectmaps

解决方案


那个怎么样?

// SETTING AN EXAMPLE FOR THE CASE
var selected = [
  {id: "101", value: "A1B", key: "AA", index: "0-119"},
  {id: "130", value: "130", key: "AB", index: "0-110"},
  {id: "130", value: "130", key: "AB", index: "0-118"}
];
var optionsMap = new Map([
  ["0-119", {id: "101", value: "A1B", key: "AA", index: "0-119"}],
  ["0-110", {id: "130", value: "130", key: "AB", index: "0-110"}],
  ["0-118", {id: "130", value: "130", key: "AB", index: "0-118"}],
  ["0-117", {id: "135", value: "131", key: "AB", index: "0-117"}],
  ["0-116", {id: "136", value: "132", key: "AB", index: "0-116"}],

]);
console.log('optionsMap.size',optionsMap.size);

// ACTUAL FILTERING
// THIS WILL DELETE ONLY THE OPTIONS BEING SPECIFIED IN selected
// AND HAVING KEY 'AB'

selected.filter(item => item.key === 'AB').forEach(el => optionsMap.delete(el.index));

// RESULT
console.log('optionsMap.size',optionsMap.size);


推荐阅读