一种是先做过滤,然后再跑forEach或for做事情function test(a) { this.test.filter(function (i) { return a.id == i.id;
}).forEach(function (item) {
a.isOpen = !a.isOpen;
});
}一种是直接用forEach或for处理function test(c){ for (let i in this.test) if(test[i].id == c.id) test[i].isOpen = !cards[i].isOpen
}代码仅供参考,想知道的是资料量很大时先filter滤出想要的东西后再跑for,效能会比直接跑for好吗?
3 回答
ITMISS
究竟用哪种是看你
TA贡献1871条经验 获得超8个赞
通常情况下,循环次数都是越少越好
。filter
本质也是先通过for循环
过滤后再返回,因此第一种的优点就是简化了写法
,但同时循环了两轮
。而第二种判断及赋值一个for循环
就解决了。
究竟用哪种是看你 需求
来的
第一种 数据量小
时,filter
写法,简化了代码
,看上去更直观,可读性更高
,但数据量特别大时效率会很低
,同时不兼容低版本ie
第二种 浏览器都支持,逻辑复杂了之后代码可读性会较差
,但是数据量大时效率要比filter
和forEach
组合的方式高不少
但是通常场景下日常操作的数据量不可能十分庞大,而且前端处理特别大数据量的需求也不合理,究竟如何取舍还是看开发环境来的
添加回答
举报
0/150
提交
取消