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