Javascript设置对象中的值

时间:2014-02-06 14:14:03

标签: jquery 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;

正如你所看到的,我正在尝试像这样创建这个对象(所有这些变量都在每个函数中),但是当我尝试它时,我得到一个空对象。

alert(JSON.stringify(eenhedenperdorp));

结果:{}

这样做的正确方法是什么?

小提琴:http://jsfiddle.net/czGrv/

2 个答案:

答案 0 :(得分:2)

在我看来,你并没有实例化你似乎想要实例化的对象。将实例化的第一行更改为:

eenhedenperdorp[coord] = {};

您的[coord]参数需要是一个对象本身,以便稍后在代码中用参数填充它。

答案 1 :(得分:0)

检查你想做什么。

由于您使用.match()coord将是数组或null(如果匹配不佳)。

你的专栏:

eenhedenperdorp[coord] = coord;

确保您的以下对象属性赋值将失败,无论是静默(您不能对数组执行)还是暴力(使用TypeError)。

你可能意味着:

eenhedenperdorp[coord] = {};