在最近的一次開發中,用到了一個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); }