在業務開發過程中,會有很大概率在與后臺對接數據的時候,遇到這種數據格式{...data:[{...id:10000,name:'中國電信',...},],...}假設我們已經將這個data渲染為一個列表,然后現在有一個需求:在一個Input組件中輸入id,之后對data中對應的id那一項進行某些業務處理。按之前的習慣,就直接這樣了//處理Input組件輸入事件handleInput(id){data.forEach(item=>{if(item.id===id){//拿到item,然后處理業務邏輯}})}但是這樣的話感覺每次都得將整個data遍歷一遍,感覺太浪費性能了。所以在想可不可以用Map來處理一下,比如//將data轉換成類似Map的數據結構,或者newMap()貌似也可以?toMap(data,mainKey='id'){constmap={};data.forEach(item=>{map[mainKey]=item;});returnmap;}constmap=toMap(data);這樣轉換之后,后續就可以在handleInput(id)方法中直接用map[id]或者如果使用Map的話map.get(id)來獲取到對應的item了。不知道這樣做在實際的業務開發中是否具有可行性。。。
通過Map結構數據來處理業務邏輯中的response data?
眼眸繁星
2019-05-09 22:28:01