[WT] [Архив]  [Поиск] Главная Управление
[Совместно с Ычаном]
[Назад]
Ответ в нить
Имя
Animapcha image [@] [?]
Тема   ( ответ в 18677)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, OGG, PDF, PNG, PSD, RAR, SVG, SWF, TXT, XCF, ZIP размером до 10000 кБ.
  • Ныне 2865 unique user posts. Посмотреть каталог
  • Максимальное количество бампов нити: 500
151607138862.png-(55.23KB, 141×200, .png)
18677
No. 18677 watch    
Привет стив. Я тут потихоньку хочу вкатится в javascript и уже начинаю по чуть-чуть писать код. ИТТ буду кидать код, который не работает и я не могу найти в нем, где же я накосячил. Ну и заодно буду вопросы задавать по сабжу.
Развернуть все изображения
No. 18679    
151607203242.png-(1.90MB, 1200×1700, .png)
18679
Вот значит кусок кода у меня:
var myArray = [];

function ints(myArray) {

if (myArray < 0) {

return myArray;

} else {

for (var i = 0; myArray >= i; i = i + 1) {

myArray.push[i];

`

   
}

return myArray;

 
}

}



Задача у него такая. Есть у нас функция, которая принимает аргумент и из этого начинает заполнять в созданный уже заранее одномерный массив. И заполнять она будет целыми числами его. Их количество равняется номеру аргумента. Но на выходе я получил следующую ошибку:

TypeError: Cannot read property '0' of undefined

Line 7

   
myArray.push[i];

               
^


Stack:


    
ints Line 7 - "myArray.push[i];"

    
testInts (Line 26:19)

`
No. 18681    
151608628013.png-(132.20KB, 520×245, ReLIFE.png)
18681
Похоже на то, что ты собрался по одному имени «myArray» обращаться и к аргументу функции «ints» изнутри этой функции, и к ранее созданному вне её массиву.

Так не получится. Изнутри функции имя аргумента заслонит внешнее имя.

Например, если ты вызвал «ints(17)», то у тебя «myArray.push[i]» будет «17.push[0]» на первом шаге. Это и вызывает ошибку «Cannot read property '0' of undefined», потому что значение «17.push» не определено и никакого свойства 0 (через «17.push[0]» достигаемого) иметь не может.

Также сообщаю, что конструкция «имяМассива.push(значение)» записывается не через квадратные скобки (как обращение к свойству), а через круглые (как вызов функции — в данном случае, вызов метода массива).
No. 18784    
151691611586.jpg-(254.06KB, 1920×1080, .jpg)
18784
>>18681
> Похоже на то, что ты собрался по одному имени «myArray» обращаться и к аргументу функции «ints» изнутри этой функции, и к ранее созданному вне её массиву.
> Так не получится. Изнутри функции имя аргумента заслонит внешнее имя.
А не подскажешь, как тогда в такой ситуации можно поступить? А то я как-то совсем запутался.
Получается параметр функции это тоже в каком-то смысле переменная?
> Также сообщаю, что конструкция «имяМассива.push(значение)» записывается не через квадратные скобки (как обращение к свойству), а через круглые (как вызов функции — в данном случае, вызов метода массива).
Чет не заметил. И правда.
No. 18786    
> буду кидать код
Зачем же так колхозно-то? Полно ведь сервисов для этих целей.
No. 18790    
>>18786
Да понял-понял. Больше так не буду. Я не знал что тут такие проблемы с отображением кода.
No. 18794    
15169888589.png-(103.03KB, 600×640, Конный арбалетчик.png)
18794
>>18784

> Получается параметр функции это тоже в каком-то смысле переменная?

Да.

> А не подскажешь, как тогда в такой ситуации можно поступить? А то я как-то совсем запутался.

Просто дай параметру другое имя.
No. 19011    
151813048450.jpg-(97.76KB, 400×626, Hanako yandere.jpg)
19011
>>18790

> Я не знал что тут такие проблемы с отображением кода.

А нѣтъ никаких особенных проблем с ним.

Просто достаточно одного обратного апострофа в начале кода (содержащего сколько угодно строк) и ещё одного в конце кода.

Выглядит так (на примере приведённого выше некорректного кода):

var myArray = [];


function ints(myArray) {
   if (myArray < 0) {
      return myArray;
   } else {
      for (var i = 0; myArray >= i; i = i + 1) {
         myArray.push[i];
      }
      return myArray;
   }
}

No. 19215    
151912079635.png-(1.03MB, 1280×720, Chūnibyō demo Koi ga Shitai - Guess I&#039;ve go.png)
19215
Это бамп для того, чтобы реплика >>18679 отсеклась в архив и перестала вызывать горизонтальную полосу прокрутки во всём /dev/.

Месяц я терпел эту полосу, но на второй месяц задалбывает.
No. 19216    
151912105787.jpg-(89.22KB, 1280×720, 1505889015007.jpg)
19216
>>19215
Когда нечего написать по теме треда, надо использовать sage.
No. 19226    
151913981055.png-(703.29KB, 1280×720, Code Geass Ep02.png)
19226
>>19216

Ах да.
Удалить сообщение []
Пароль  
[Mod]