2014-02-06 3 views
0
var coord = $(this).find("td:eq(0)").text().match(/\d{1,3}\|\d{1,3}/g); 
    var AantalSpeerDorp = parseInt($(this).find("td:eq(2)").text()); 
    var AantalZwaardDorp = parseInt($(this).find("td:eq(3)").text()); 
    var AantalBijlDorp = parseInt($(this).find("td:eq(4)").text()); 
    var AantalScoutDorp = parseInt($(this).find("td:eq(5)").text()); 
    var AantalLCDorp = parseInt($(this).find("td:eq(6)").text()); 
    var AantalHcDorp = parseInt($(this).find("td:eq(7)").text()); 
    var AantalRamDorp = parseInt($(this).find("td:eq(8)").text()); 
    var AantalKatDorp = parseInt($(this).find("td:eq(9)").text()); 
    var AantalEdelDorp = parseInt($(this).find("td:eq(10)").text()); 

    var eenhedenperdorp = {}; 
    eenhedenperdorp[coord] = coord; 
    eenhedenperdorp[coord]["speer"] = AantalSpeerDorp; 
    eenhedenperdorp[coord]["zwaard"]= AantalZwaardDorp; 
    eenhedenperdorp[coord]["bijl"] = AantalBijlDorp; 
    eenhedenperdorp[coord]["Scout"] = AantalScoutDorp; 
    eenhedenperdorp[coord]["lc"] = AantalLCDorp; 
    eenhedenperdorp[coord]["hc"] = AantalHcDorp; 
    eenhedenperdorp[coord]["ram"] = AantalRamDorp; 
    eenhedenperdorp[coord]["kata"] = AantalKatDorp; 
    eenhedenperdorp[coord]["edel"] = AantalEdelDorp; 

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

alert(JSON.stringify(eenhedenperdorp)); 

Результат: {}

Что такое правильный способ сделать это?

Fiddle: http://jsfiddle.net/czGrv/

+2

Переместить эту строку: 'вар eenhedenperdorp = {};' вне цикла? В противном случае вы просто создаете новый объект, который не отображается за пределами области действия каждой функции каждый раз. –

+0

Я сделал это за пределами цикла :) Я просто разместил его здесь, чтобы было ясно, что я пытаюсь сделать. @adeneo Как это сложно? Все переменная, и я помещаю каждую переменную с соответствующими числами и типами в объект. Я не знаю, как еще я мог это сделать? – user3117628

+1

Какой объект является 'this' в начале кода? Какое событие вы внутри? Больше кода пожалуйста. –

ответ

2

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

eenhedenperdorp[coord] = {}; 

Ваш [коорд] параметр должен быть сам объект, чтобы заполнить его с параметрами позже в коде.

+0

Это трюк, вы спасатель жизни :) Thx alot! Я соглашусь через минуту. – user3117628

+0

Нет проблем. Добавьте немного хорошего верблюжьего корпуса, это верно и в голландском! eenhedenPerDorp – Spork

+0

Теперь, если вы просто управляете данными в цикле, чтобы их код не был настолько длинным ... :) –

0

Проверьте, что вы хотите сделать.

Поскольку вы используете .match(), coord будет либо массив, либо null (если матч не подходит).

Ваша линия:

eenhedenperdorp[coord] = coord; 

гарантирует, что следующий объект назначения собственности не получится, либо тихо (вы не можете сделать это к массивам) или сильно (с TypeError).

вероятно Вы имели в виду:

eenhedenperdorp[coord] = {}; 
Смежные вопросы