Отрезок размера массива с использованием оператора if else - PullRequest
0 голосов
/ 13 сентября 2018

Говорит, что я хочу ограничить размер массива, условие всегда брать первый элемент, мы можем сделать .slice, но нужен ли мне оператор if для метода slice?

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

Вышеуказанная работа работает, но является ли необходимым утверждение if else? Есть ли лучший способ сделать это?

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

... есть ли лучший способ сделать это?

Если важна скорость, цикл 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) 62 - 67 % медленнее, чем whileпетля.Это может показаться педантичной деталью, но если вы много нарежете, вы можете значительно улучшить производительность.

0 голосов
/ 13 сентября 2018

Конечно,

result = arrays.slice(0,10);

Если оно меньше или равно 10, разницы нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...