換個思路修改數據結構中的鍵名

在最近的一次開發中,用到了一個iview級聯組件,不得不吐槽一下,這個組件對於數據格式要求比較嚴格,但整個項目的技術棧又選擇了這個庫,無奈只能改變返回的數據結構鍵名。json

 

後端返回的數據結構:後端

  

[
  {
    id: 1,
    name: "美容",
   childrenIndustryList: [ { id: 10, name: "護膚" } ]
}
]

組件所需的數據格式:數據結構

[
  {
    value: 1,
    label: "美容",
   children: [
       {
          value: 10,
          label: "護膚"
       }   
    ]   
   }   
]

 

可看出數據格式是 同樣的 ,可是要的屬性名不一樣,那該怎麼處理呢?  循環?? 數據量大的數據,循環很慢,而且是嵌套循環,更慢。iview

如下是解決思路: 轉換爲字符串,而且在replace操做時,只對字符串查找了一次。spa

 

export const changeIndustry = (attach) => {
  if (attach.length === 0) return attach;
  const jsonString = JSON.stringify(attach);
  const mo = {
    id: 'value',
    name: 'label',
    childIndustryList: 'children'
  };
  const rs = jsonString.replace(/id|name|childIndustryList/g,function(me) {
    return mo[me];
  });
  return JSON.parse(rs);
}
相關文章
相關標籤/搜索