Подтвердить что ты не робот

Заполнение другого массива из массива - Javascript

Очень простая вещь, которую я пытаюсь сделать в JS (присваивать значения одного массива другому), но почему-то значение массива bar вообще не отображается.

Первое, что я пробовал, конечно, было просто bar = ar; - не работало, поэтому я пробовал вручную прокручивать... все равно не работает.

Я не задираю причуды Javascript! Пожалуйста, помогите!


var ar=["apple","banana","canaple"];
var bar;

for(i=0;i<ar.length;i++){
    bar[i]=ar[i];
}
alert(ar[1]);

А вот вот скрипка: http://jsfiddle.net/vGycZ/


(Вышеприведенное упрощение. Фактический массив является многомерным.)

4b9b3361

Ответ 1

Ваш код не работает, потому что вы не инициализируете bar:

var bar = [];

Вы также забыли объявить переменную i, которая может быть проблематичной, например, если код внутри функции, i в конечном итоге станет глобальной переменной (всегда используйте var:).

Но вы можете избежать цикла, просто используя метод slice, чтобы создать копию вашего первого массива:

var arr = ["apple","banana","canaple"];
var bar = arr.slice();

Ответ 2

У вас есть две проблемы:

Сначала вам нужно инициализировать bar как массив:

var bar = [];

Тогда arr должно быть ar здесь:

for(i=0;i<arr.length;i++){

Затем вы получите предупреждение о своем банане:)

Ответ 4

У вас есть ошибочная переменная ar Попробуйте это

for(i=0;i<ar.length;i++){
    bar[i]=ar[i];
}
alert(ar[1]);

Ответ 5

Проблема, вероятно, здесь, в инструкции цикла for:

for(i=0;i<ar.length;i++){
    bar[i]=ar[i];
}
alert(ar[1]);

Вам нужно зафиксировать ar.length вместо arr.length. И лучше инициализировать бар как: var bar = [].

Ответ 6

В вашем коде переменная arr в цикле for не совпадает с вашим исходным массивом ar: у вас слишком много r.