Контантенировать два массива?

241
30 января 2019, 03:20

Подскажите алгоритм. Есть массив из 10 элементов. И есть второй массив из n элементов. Нужно каждый раз когда приходит второй массив, заполнять первый и добавлять элементы вначало первого. Пришло 5 новых элементов, добавляем вначало и получаем 5 заполненных и 5 пустых в первом массиве. Доабвлять нужно до тех пор пока не станет 10 элементов в первом.

Answer 1

Проще всего использовать функцию unshift для добавления элемента в начало массива и "обрезать" массив через slice.

Пример с unshift и slice

let teamsArray = ['a', 'b', 'c', 'd', 'e'] 
let teamsArrayNew = [1, 2, 3, 4, 5, 6, 7] 
 
function updateArray(entryArray, newArray) { 
  newArray = newArray.reverse(); 
  newArray.forEach(function(element) { 
    entryArray.unshift(element); 
    if (newArray.length <= 10) { 
      entryArray = entryArray.slice(0, 10); 
    } else { 
      entryArray = entryArray.slice(0, newArray.length); 
    } 
  }); 
  return entryArray; 
} 
 
teamsArray = updateArray(teamsArray, teamsArrayNew); 
 
console.log(teamsArray);

Функция reverse использовалась, потому что forEach делает обход с конца массива.

READ ALSO
Microsoft Edge и символы в крилице

Microsoft Edge и символы в крилице

подключили блок поделиться на этот сайт http://angelcareru в microsoft edge вместо слово "поделиться" отображались кракозябры, переделали скрипт на "share"...

250
Почему идет ошибка like.addEventListener is not a function?

Почему идет ошибка like.addEventListener is not a function?

Есть такой код и он работает:

255
Не работает событие click в safari

Не работает событие click в safari

Не могу понятьВо всех браузерах работает

268