动态添加元素到对象

时间:2016-02-10 23:11:26

标签: javascript

这是我想要动态重建的对象

var myPath = {
    one: [
        new google.maps.LatLng(1,2), 
        new google.maps.LatLng(3,4))
    ]};

这是我的尝试没有成功:

var myPath2 = {};
var newFieldName = 'one';
myobj[newFieldName].push(new google.maps.LatLng(1,2));
myobj[newFieldName].push(new google.maps.LatLng(3,4));

我收到以下错误:

  

未捕获的TypeError:无法读取未定义的属性“push”

另一次尝试:

var myPath2 = {};
var newFieldName = 'one';
myobj[newFieldName].add(new google.maps.LatLng(1,2));
myobj[newFieldName].add(new google.maps.LatLng(3,4));

我收到以下错误:

  

未捕获的TypeError:无法读取未定义的属性“add”

如何添加/推送新元素?

2 个答案:

答案 0 :(得分:4)

这就是你要找的东西吗?

myobj[newFieldName] = []; // initialize the array
myobj[newFieldName].push(new google.maps.LatLng(1,2)); // push (not "add" as you used)

答案 1 :(得分:2)

首先需要将字段值设置为数组,然后可以将push个元素放入其中。

var myPath2 = {};
var newFieldName = 'one';

// Set field value to an array
myPath2[newFieldName] = [];

// Then you can push elements into it
myPath2[newFieldName].push(new google.maps.LatLng(1,2));
myPath2[newFieldName].push(new google.maps.LatLng(3,4));