function partitionOn(items) {
let arr = [];
let long = 0;
for (i=0; i<items.length; i++){
if (items[i]%2===0){
arr.push(items[i])
items.splice(i,1)
}
}
long = items.length;
items = items.concat(arr)
console.log(items)
return long
}
var items = [1, 2, 3, 4, 5, 6];
var i = partitionOn(items);
console.log(items)
Почему в items
элементы в цикле удаляются, а конкатенация не проходит ? В самой функции консоль выводит правильно, а вне ее массив как до конкатенации.
Потому что items.concat(arr)
возвращает другой референс на новый массив. Вы просто перетираете референс на массив входного параметра функции. Вам нужно либо манипулировать входным массивом, либо возвращать новый:
function partitionOn(items) {
let arr = [];
let long = 0;
for (i=0; i<items.length; i++){
if (items[i]%2===0){
arr.push(items[i])
items.splice(i,1)
}
}
long = items.length;
items = items.concat(arr); // тут создали новый массив,
// присобачили к нему items и следом arr,
// вернули реф на новый массив
return items;
}
var items = [1, 2, 3, 4, 5, 6];
var newItems = partitionOn(items);
console.log(newItems)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть код в листинге 1 и есть функция в листинге 2Оба фрагмента находятся в одном файле и фрагмент из листинга 1 хорошо отрабатывает в других...
Хочу чтобы программа определяла день недели и заполняла расписание в связи с этим, но она заполняет только div, а li не заполняет, что не так?
Использую библиотеку P5JS чтобы нарисовать квадрат шириной и высотой во всю канву: