如何在javascript中添加数组项?

时间:2016-05-24 03:25:01

标签: javascript

在一个wordpress插件中,有一个名为'data'的字段框,我可以在其中添加代码以便拉取,在代码中,它代表“data =”,即我引用该框。在框中:

我在名为'data'的字段框中输入了什么:

{
  contacts: [
    { name: "Name 1", email: "email1@test.com" },
    { name: "Name 2", email: "email2@test.com" }
  ]
};

这是我放在全局字段框中的内容,因为它适用于所有内容。

function (jQueryPopoverObj, mapObject, mapsvgInstance) {

  // "this" = clicked mapObject
  if(this.mapsvg_type == "region"){
    return '<b>'+this.id+'</b>' +
      this.data.contacts.map(function(contact) {
        return contact.name + '<br>' +
          '<a href="mailto:'+contact.email+ '">' + contact.email + '</a>'
         }).join('<br>');

  } else if (this.mapsvg_type == "marker"){
    return 'Marker - <b>'+this.id+'</b>, contact: '+this.data.email;
 }

}

我还要将{seat:“County Seat”}添加到数据部分并将其添加到函数中。 我尝试在联系人中添加一行,然后在返回contact.name后添加+ '<br>' + contact.seat,没有运气。基本上当它执行popover(它从模板的全局函数和数据字段框中的信息中提取)时,我希望它在县名下有CountySeat(例如Harris County的县城是休斯顿,所以它在哈里斯县会有休斯顿。)

Example of Lubbock County without the City name under it

2 个答案:

答案 0 :(得分:0)

var data = {
           contacts: [
                     { name: "Name 1", email: "email1@test.com" },
                     { name: "Name 2", email: "email2@test.com" }
                     ]
           }

要添加新的房产座位,您只需执行此操作即可 -

data["seat"] = "County Seat"

data.seat = "County Seat"

JSFiddle

答案 1 :(得分:0)

看起来您想在联系人上设置座位分配?您必须从阵列中获取联系,循环遍历每个阵列并找出您要使用的联系人,然后执行contact.seat =&#34; XYZ&#34;,这将添加一个座位属性联系对象。然后,您可以在字符串输出中使用contact.seat,但必须对其进行null检查,因为它可能为null。为了解决这个问题,我建议将其默认为空字符串,如:

 data = {
contacts: [
 { name: "Name 1", email: "email1@test.com", seat: "" },
 { name: "Name 2", email: "email2@test.com", seat: "" }
  ]
}

然后在分配时更改它。