DarthJS
@DarthJS

Почему массив перезаписывается (Javascript)?

Понимаю, что вопрос касается основ, но я видимо что-то упустил :)

Подскажите, почему так происходит?
Есть функция, принимает несколько аргументов, хочу чтоб при пуше нового элемента, он добавлялся, естественно, в конец массива, а получается, что массив заполняется полностью одним элементов и перезаписывается последним поступившим. Должно быть что-то не так с циклом.

this.rule = function(tr, td, size){

var rez = [];
for(var i = 0; i < size; i++){
rez.push(tr[i]);
}
console.log(tr, td, size);
console.log(rez);
}
  • Вопрос задан
  • 1208 просмотров
Решения вопроса 1
mudrenokanton
@mudrenokanton
frontend dev
ваш rez находится в локальной области видимости функции, если хотите, что бы можно было добавлять, надо писать в таком стиле

var rule = {};
rule.rez = [];
rule.addElements = function (array){
  var l = array.length;
  var i = 0;
  for (i = 0; i < l; i++) { this.rez.push(array[i]) };
};
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
svfat
@svfat
☺Нужен VPS? Два месяца бесплатно. Смотри профиль☺
Кодом,
rez.push(tr[i]);
вы добавляете i-e значение из tr, а оно там всегда одно, что можно увидеть с помощью console.log(tr);
Возможно там должно быть: rez.push(tr);или rez.push(td);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы