var a = [5, 12];
var b = [];
a[99] = 7;
for (var i = 0; i < a.length; i++) {
if (a[i] != undefined)
b.push(Math.pow(a[i], 2));
console.log(b[i]);
}
for (var i in a) {
b.push(Math.pow(a[i], 2));
console.log(b[i]);
}
Вопрос: почему в консоли не выводится квадрат 99 элемента?
Потому что вы записываете не то, что считываете.
b.push
записывает элемент в "хвост" массива, по индексу b.length
.
Вы дописываете в b
элементы только когда натыкаетесь на не-undefined
элемент в a
. Поэтому когда цикл натыкается на undefined
в a
, величина b.length
отстаёт на 1 от i
. А у вас там в массиве a
довольно внушительная дыра, сквозь которую видно одни undefined
.
И получается, что число 49 в вашем массиве квадратов находится под индексом 2, а не 99, где вы ожидаете его увидеть.
Что делать?
Старайтесь соблюдать в коде однородность. Если выводите b[i]
то записывать есть смысл, как b[i] = значение
. Или, что может быть даже лучше, сохранять вставляемое значение в локальную переменную и выводить где-то рядом со вставкой.
Т.к. метод push()
добавляет элементы и присваивает последовательные индексы, то индексы элементов в b
будут 0, 1, 2
, тогда как в а
индексы элементов 0, 1, 99
, поэтому индексация в массивах а
и b
будет отличаться
var a = [5, 12];
var b = [];
a[99] = 7;
for (var i = 0; i < a.length; i++) {
if (a[i] != undefined) {
b.push(Math.pow(a[i], 2));
console.log(b[b.length - 1]);
}
}
for (var i in a) {
b.push(Math.pow(a[i], 2));
console.log(b[b.length - 1]);
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть textarea в которую я через $("#text")val(res); записываю текст
Есть исходники замечательного проекта https://githubcom/Nasso/urmusic Там визуализируется музыка с soundcloud или та которую загрузил клиент
Вопрос заключается в том что бы написать на чистом javascript код который позволит каждые определенные n секунд добавлять и удалять классВот код...