说我想限制数组的大小,条件是始终取第一项,我们可以做.slice但我是否需要slice方法的else语句?
result = arrays.length > 10 ? arrays.slice(0, 10) : arrays
以上语句有效,但是if else语句是否必要?有更好的方法吗?
答案 0 :(得分:0)
...还有更好的方法吗?
如果要关注速度,那么while
循环会更快:
var i=0, l=arrays.length, result = [];
while (i<10 || i>l) { result[i] = arrays[i]; i++ }
制作了jsperf-> https://jsperf.com/slice-vs-while-with-length-check/1
在我的Chrome 63 / Ubuntu arrays.slice(0,10)
上比while
循环慢 62 - 67 %。这可能看起来像是个古怪的细节,但是如果您进行了很多细分,则可以大大提高性能。