user3117628
user3117628

Reputation: 786

Javascript setting values in object

  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;

As you can see I'm trying to create this object like this (all these variables are in an each function), but when I try it out I get an empty object.

alert(JSON.stringify(eenhedenperdorp));

Result: {}

What's the correct way to do this?

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

Upvotes: 0

Views: 63

Answers (2)

Noyo
Noyo

Reputation: 5134

Check what you want to do.

Since you use .match(), coord will be either an array or null (if the match isn't good).

Your line:

eenhedenperdorp[coord] = coord;

ensures that your following object property assignments will fail, either silently (you can't do that to arrays) or violently (with a TypeError).

You probably meant:

eenhedenperdorp[coord] = {};

Upvotes: 0

Spork
Spork

Reputation: 1651

Looks to me like you're not instantiating the object that you seem to want to instantiate. Change the first line of instantiation to:

eenhedenperdorp[coord] = {};

Your [coord] parameter needs to be an object itself to fill it with parameters later on in your code.

Upvotes: 2

Related Questions