У меня есть три источника данных, которые возвращают массивы в размере. Я хочу создать один массив результатов из них, одновременно ограничивая количество, которое я могу вернуть.Добавление нескольких массивов с ограничением
var array1 = ["one"];
var array2 = ["two", "three", "four"];
var array3 = ["five", "six", "seven"];
Я хочу только вернуть первые 6 результатов, но они могут исходить от любой из трех массивов в порядке. В приведенном выше примере я ожидаю, что вернется "one, two, three, four, five, six"
.
Я достиг этого, используя мультипликатор для петель, с несколькими, если заявления:
var tList = [];
var tCount = 0;
var tLimit = 5;
for (i = 0; i < array1.length; i++) {
if (tCount <= tLimit) {
tList.push(array1[i]);
tCount++;
}
}
for(i = 0; i < array2.length; i++) {
if (tCount <= tLimit) {
tList.push(array2[i]);
tCount++;
}
}
for(i = 0; i < array3.length; i++) {
if (tCount <= tLimit) {
tList.push(array3[i]);
tCount++;
}
}
однако это не кажется, как лучший или tidiest подход к этому, Есть ли лучший способ достижения той же цели? без использования плагина, такого как подчеркивание.
вот jsfiddle играть с: https://jsfiddle.net/sju7g5dp/
Соединить все массивы, а затем отрезают первые п элементов. '[] .concat (array1, array2, array3) .slice (0, 5)'. –
@torazaburo это все еще лучшая практика, если сказать, что у первого массива было 6 результатов, чтобы все еще идти вперед и делать все остальное, а затем удалять их – gardni
Если вы не ожидаете, что в общей сложности будет 10 000 элементов, и вы только хотите принять первые пять, то да. –