Что в нем не правильно? В JS

279
08 мая 2017, 02:07
var a=[5,12,3,11];
var b=[];
a[99]=7;
function c(){
    for(var i=0;i<a.length;i++){
    b[i]=(Math.pow(a[i],2));
};
              return b;
}
console.log(c());

хочу чтоб написал 25,144,9,121 и 49.....но у меня много NaN-ов

Answer 1

На самом деле всё работает. Просто когда ты пишешь так:

var a=[5,12,3,11];
a[99]=7;

то в итоге массив с 0-вого элемента по 3 заполняется числами, а также 99 (на самом деле 98) - имеет значение 7. Однако массиву надо заполнить пространство между 3 и 98 элементами и он заполняет их undefined. В итоге в массиве a с 4 по 97 элемент имеют значения undefined и в целом выглядит так:

 (100) [5, 12, 3, 11, undefined × 95, 7]

А дальше в цикле Math.pow(undefined,2) конечно же превращается в NaN

READ ALSO
Как добавить VR фото на сайт

Как добавить VR фото на сайт

Здравствуйте, мне необходимо добавить на сайт фото 360 (виртуальная реальность), отснятые при помощи Samsung Gear 360, как это реализоватьОпыта в этом...

358
Как менять изображение в canvas для генерации изображения

Как менять изображение в canvas для генерации изображения

Добрый день, как можно осуществить загрузку изображения img1 в canvas со страницы через id для генерации и последующего скачивания получившегося...

267
Как включить полосу zoom в google map api?

Как включить полосу zoom в google map api?

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

247
RegExp: найти квадратную скобку &ldquo;[&rdquo; если перед ней не стоит слово &ldquo;foo&rdquo;?

RegExp: найти квадратную скобку “[” если перед ней не стоит слово “foo”?

RegExp: найти квадратную скобку "[" если перед ней не стоит слово "foo"?

248