Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.05.2012, 10:40
Новичок на форуме
Отправить личное сообщение для volkovics Посмотреть профиль Найти все сообщения от volkovics
 
Регистрация: 19.03.2012
Сообщений: 5

Push в массив из функции с объектом
Не совсем уверен с выбором заголовка, но по скольку я новенький, думаю простите.

И так, уже битый час мучаюсь с пустяком.
Передо мной стоит задача, сделать push в массив, через безымянную функцию, с использованием объекта.

Вот собственно мой код:

var lunch = [];
var addLunchFood = function(name,calories){
    var food = {name:calories};
    lunch.push(food);
};
addLunchFood('Burger',900);
addLunchFood('Fries',700);
addLunchFood('Soda',300);


Тут есть ошибка, но я не могу понять где. Нужно, чтобы в массив lunch записались те 3, которые снизу (не знаю, как это правильно называется :[ ).

Уже искал ответы тут:
http://javascript.ru/tutorial/object/intro

и тут:
http://javascript.ru/Function

Будьте добры, подскажите пожалуйста, где ошибка? Или подтолкните в правильном направлении.
Ответить с цитированием
  #2 (permalink)  
Старый 21.05.2012, 11:31
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

var food = {name:calories};//создаем объект с полем "name", и значением равным переменной calories
//эквивалентный код:
var food = {};
food.name = calories;


а вам нужно так:
var food = {};
food[name] = calories;
//создаем объект с полем имя которого равно переменной name, и значением равным переменной calories

http://javascript.ru/accessors
Ответить с цитированием
  #3 (permalink)  
Старый 21.05.2012, 12:05
Новичок на форуме
Отправить личное сообщение для volkovics Посмотреть профиль Найти все сообщения от volkovics
 
Регистрация: 19.03.2012
Сообщений: 5

Цитата:
Объект представляет собой обычный ассоциативный массив (словарь, хэш). Ключами этого массива являются имена свойств и методов (свойств, являющихся ссылкой на функцию).
Признаться честно, я перечитал это раз 10. Каждый раз всё медленнее и медленнее и всёравно не понял, что же такое аксессоры, точнее принцип его работы.

И кстати говоря:
var food = {};
food[name] = calories;
//создаем объект с полем имя которого равно переменной name, и значением равным переменной calories


Не решило проблемы, а если это был, как толчок в правильное направление, то я не понял.
Ответить с цитированием
  #4 (permalink)  
Старый 21.05.2012, 12:14
Новичок на форуме
Отправить личное сообщение для volkovics Посмотреть профиль Найти все сообщения от volkovics
 
Регистрация: 19.03.2012
Сообщений: 5

Собственно, я попробую описать более подробней.

Вот задача, целиком и полностью:

Lunch with Objects, Arrays and Functions

Now that we are keeping track of what we are eating, how about we add the amount of calories that each of these food items contain. To do this each item in our array will need to be an Object. The object will store the name and the calorie count of each food item in our array. Because it's all going to be a little different let's do this for lunch.

We have a pretty good start on this one all we need to do is push our name and calorie values into our lunch array. To do this define a variable called food and assign an object with the {} to it. This object is going to contain the name and calories arguments. Then push this food variable into our lunch array.

И к этому всему дан код, который нужно модифицировать, дабы он заработал:

var lunch = [];
var addLunchFood = function(name,calories){
    
};
addLunchFood('Burger',900);
addLunchFood('Fries',700);
addLunchFood('Soda',300);


Вот собственно и вся задача.


________________________________

Вообщем, вся ошибка заключалась в том, что нужно было в объекте указать вот так:

var food = {name:name, calories:calories};


Извиняюсь, что нафлудил.

Последний раз редактировалось volkovics, 21.05.2012 в 12:39.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив, созданый в функцие не доступен нигде кроме тела функции Flirer Общие вопросы Javascript 1 07.05.2011 20:19
arguments вызвавшей функции mister_maxim Общие вопросы Javascript 4 12.10.2010 16:21
Строка вызова функции DMH Общие вопросы Javascript 11 10.08.2010 09:06
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 19:14
Подскажите, как вернуть js-скрипт массив Polkan AJAX и COMET 18 30.04.2010 23:30