Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   почему не работает функция? (https://javascript.ru/forum/misc/54806-pochemu-ne-rabotaet-funkciya.html)

sana 01.04.2015 16:39

почему не работает функция?
 
Всем привет,
Только начала изучение javascript, поэтому много чего не получается, и могу задавать глупые вопросы))

Уже сломала всю голову. Никак не могу понять, где у меня ошибка и почему код не работает?

Изначально я пыталась сделать следующее: мне надо было создать два массива (array ) с фильмами и оценками, потом создать функция addMovie (title, rating), куда надо было положить созданные arrays, потом создать функцию printMovies , с помощью которой нужно было вывести на экран название фильма с правильным рейтингом.

Ниже мой код. Всем заранее спасибо за помощь))

var titles = [];
var ratings = [];

function addMovie(title, rating){
    titles.push(title)
    ratings.push(rating)
};

function printMovies() {
	for(var i = 0; i < 5; i++) {
		addMovie = titles[i] + ratings[i];
	}
	for(var i = 0; i < titles.length && ratings.length ; i++) {
		document.writeln(titles[i] + ratings[i] + "<br>");
	}
};

addMovie("Star Wars: Episode VII - The Force Awakens", 9);
addMovie("Max", 6);
addMovie("Spirited Away", 10);
addMovie("The Hunger Games", 8);
addMovie("Wild", 7);

printMovies();

рони 01.04.2015 16:47

sana,
уберите строки 10 , 11, 12

Царь Леонид 01.04.2015 16:50

Ммм, у меня все работает

Erolast 01.04.2015 17:47

Цитата:

for(var i = 0; i < 5; i++) {
    addMovie = titles[i] + ratings[i];
}

И чего ты пытаешься этим добиться?

sana 01.04.2015 17:47

ой, правда работает)))

мог мой код у меня не работать из-за того, что я в одном файле все делала, а там у меня была еще другая функция с таким же названием?

Erolast 01.04.2015 17:53

Цитата:

мог мой код у меня не работать из-за того, что я в одном файле все делала, а там у меня была еще другая функция с таким же названием?
Да.
Интерпретация JS производится в два прохода - сначала происходит объявление функций, и только затем выполнение кода.
var number = getNumber(); 
console.log(number); //Случайное число

function getNumber() {
    return Math.random();
}

Естественно, что с объявлением одноименной функции все поломалось:
var number = getNumber();
console.log(number); //NaN

function getNumber() {
    return Math.random();
}

function getNumber() { //Это объявление функции перезаписывает старую
    return NaN;
}


Алсо, открой для себя веб-консоль - там бы эту ошибку, скорее всего, сразу стало видно.


Часовой пояс GMT +3, время: 12:21.