首页 > 解决方案 > 选项卡为空时无法形成结构并过滤掉选项卡

问题描述

我试图expectedOutput通过迭代选项卡数据和过滤器选项卡来形成结构

let tabs = {
  'tab1': [{id:'1',mnemonic:'first',value:'jim'},
           {id:'2',mnemonic:'second',value:'kim'}],
  'tab2': [{id:'1',mnemonic:'first',value:'jim'},
           {id:'2',mnemonic:'second',value:'kim'}],
  'tab3': []
}


let expectedOutput = {
  'tab1': [{id:'1',mnemonic:'first',value:'jim'},
           {id:'2',mnemonic:'second',value:'kim'}],
  'tab2': [{id:'1',mnemonic:'first',value:'jim'},
           {id:'2',mnemonic:'second',value:'kim'}],
}
let newTabs = Object.fromEntries(
  Object.entries(tabs).map(([tab, data]) => {
    if (tabs[tab] && tabs[tab].length > 0)
      data = data.map(d => ({ ...d }));
    return [tab, data];
  })
);
console.log("original", tabs);
console.log("new", newTabs);

标签: javascriptarraysobject

解决方案


也可以试试:

const tabs = {
  'tab1': [{id:'1',mnemonic:'first',value:'jim'},
           {id:'2',mnemonic:'second',value:'kim'}],
  'tab2': [{id:'1',mnemonic:'first',value:'jim'},
           {id:'2',mnemonic:'second',value:'kim'}],
  'tab3': []
}

const newTabs = {}
Object.keys(tabs).forEach(a => tabs[a].length ? newTabs[a] = tabs[a] : '')

console.log(newTabs)


推荐阅读