使用if else语句的数组大小切片回退

时间:2018-09-13 01:28:39

标签: javascript arrays ecmascript-6

说我想限制数组的大小,条件是始终取第一项,我们可以做.slice但我是否需要slice方法的else语句?

result = arrays.length > 10 ? arrays.slice(0, 10) : arrays

以上语句有效,但是if else语句是否必要?有更好的方法吗?

1 个答案:

答案 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 %。这可能看起来像是个古怪的细节,但是如果您进行了很多细分,则可以大大提高性能。