Автозаполнение массива JS с циклом for

124
11 января 2021, 04:30

Хочу заполнить массив числами от 0 до 10

var arr = new Array(10);
for (var i = 0; i < arr.length; i++) {
  document.writeln( arr.push[i] );
}

в результате получается

Answer 1

(извиняюсь, получилось многобукаф) Внесу немного ясности...

Если имеем какой-нибудь массив var arr = ['bubu', 154, 'kuku']; то его элементы можно достать через номер внутри квадратных скобок:

arr[0] == 'bubu'
arr[1] == 154
arr[2] == 'kuku'

В массив можно добавлять новые элементы через метод .push()

var arr = ['bubu', 154, 'kuku']; 
    arr.push('new-bubu'); 
 
console.log( arr );

Есть еще объекты...

var obj = {'push': '15', 'moo': 159} 
 
console.log( obj.push ) 
console.log( obj.moo )

Но массивы могут храниться и в виде элемента в объекте. Тогда чтобы получить очередной элемент массива, который находится в объекте, нужно будет записать примерно то же, что писали и вы:

var arr = { 
  'push': ['какашка', 2, 555], 
  'kuku': ['loo', 15, 145] 
} 
 
console.log( arr.push[0] ) 
console.log( arr.push[1] ) 
console.log( arr.push[2] ) 
console.log( arr.push[3] ) // не существует → undefined

В примере есть реально существующие элементы массива, поэтому выводятся они, вместо undefined. Возвращаясь к вашему главному вопросу, несколько вариантов:

var arr = [];  
 
for (var i = 10; i < 20; i++) { 
  document.writeln( arr.push(i) );  
} 
/* Выводит не сами элементы, а количество существующих элементов на каждом круге */ 
/* Интересная особенность, как оказалось)) Тогда такой код сделал бы то же самое: 
 
for (var i = 10; i < 20; i++) { 
  arr.push(i); 
  document.writeln( arr.length );  
}  
 
*/

Или

var arr = [];  
 
for (var i = 0; i < 10; i++) { 
  arr.push(i); /* Сперва добавляем все элементы */ 
} 
document.writeln( arr ); /* Потом сразу выводим весь массив (именно его элементы )*/

Или

var arr = [];  
 
for (var i = 0; i < 10; i++) { 
  arr.push(i) 
  document.writeln( arr + '<br>' ); 
}

P.s. получается, если через пустой push ничего не добавлять, arr.length == arr.push()
А в случае любого добавленного элемента, arr.length + 1 == arr.push('что-то')

var arr = [0, 0, 0, 0, 0]; 
 
/* Символ == проверяет на равенство. Если равны, возвращает true, если нет - false */ 
 
console.log( arr.length )                             // ==5 
console.log( arr.length == arr.push() ) 
console.log( arr.length + 1 == arr.push(1) )          // +1 элем от push() 
console.log( arr.length + 1 == arr.push('фвывфы') )   // +1 
console.log( arr.push('') )                           // +1 
console.log( arr.length )                             // ==8 (это не член) 
console.log( arr ) 
 
/* При этом .push() срабатывает даже если просто вызван в console.log() 
И каждый раз увеличивает массив. */

Answer 2
document.writeln( arr.push[i] );
arr[i] = i;
READ ALSO
Перебор свойств объекта и вывод в таблицу

Перебор свойств объекта и вывод в таблицу

Прошу помощиКак создать таблицу и заполнить значениями,а столбец address вывести city + street (т

99
Остановка setInterval из прототипа [дубликат]

Остановка setInterval из прототипа [дубликат]

Есть конструкция в ходе которой у объекта есть переменная interval и через методы в прототипе этой переменной задаётся setInterval и при нажатии на кнопку...

114
По сочетанию клавиш вставить текст из div

По сочетанию клавиш вставить текст из div

Если сделать, как написано в коде, то это работает ровно один раз (после того, как текст уже оказался в textarea и нужно, скажем, удалить пару символов,...

135
Плавно анимировать появление элемента

Плавно анимировать появление элемента

Вроде бы при подобном коде всё должно изменяться плавно, но подобного, к сожалению, не происходит

100