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)
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть код в листинге 1 и есть функция в листинге 2Оба фрагмента находятся в одном файле и фрагмент из листинга 1 хорошо отрабатывает в других...
Хочу чтобы программа определяла день недели и заполняла расписание в связи с этим, но она заполняет только div, а li не заполняет, что не так?
Использую библиотеку P5JS чтобы нарисовать квадрат шириной и высотой во всю канву: