在业务开发过程中,会有很大概率在与后台对接数据的时候,遇到这种数据格式{...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了。不知道这样做在实际的业务开发中是否具有可行性。。。
婷婷同学_
汪汪一只猫
相关分类