创建javascript对象

创建javascript对象,javascript,object,Javascript,Object,我有这个功能 // add history paths and save data function AddPath( strTag, strUserName, arrayLatLngPoints, pathColour) { for (var i = 0; i < arrayLatLngPoints.length; i++) { var point = arrayLatLngPoints[i]; var date = new Date( parseInt(

我有这个功能

// add history paths and save data
function AddPath( strTag, strUserName, arrayLatLngPoints, pathColour) {

  for (var i = 0; i < arrayLatLngPoints.length; i++)
    {
    var point = arrayLatLngPoints[i];
    var date = new Date( parseInt( point.timestamp));
    addMarkers(point.timestamp, point.lat, point.lng, point.timestamp, strUserName, pathColour, date.toString());
    date = null; 
    }
}

如何创建此对象

更新:

谢谢你的回复。 我试过下列方法

// add history paths and save data
function AddPath( strTag, strUserName, arrayLatLngPoints, pathColour) {

  for (var i = 0; i < arrayLatLngPoints.length; i++)
    {
    var point = arrayLatLngPoints[i];
    var pos = new google.maps.LatLng(point.lat, point.lng);

    var history = {
        strUserName : {
            timestamp : point.timestamp ,
            LatLng : pos
        }
    };

    var date = new Date( parseInt( point.timestamp));
    addMarkers(point.timestamp, point.lat, point.lng, point.timestamp, strUserName, pathColour, date.toString());
    date = null; 
    }
console.log(history);
}
//添加历史路径并保存数据
函数AddPath(strTag、strUserName、arraylalngpoints、pathColour){
对于(变量i=0;i
请参见控制台的屏幕截图

用户名不起作用,我没有为每个时间戳获取一个项目,它只是覆盖了一个条目

如何创建此对象

和你一样:

var obj = { strUserName : { timestamp : point.timestamp , LatLng : point.LatLng }, strUserName : { timestamp : point.timestamp , LatLng : point.LatLng } };
或者更容易理解:

var obj = {
    strUserName : {
        timestamp : point.timestamp ,
        LatLng : point.LatLng
    },
    strUserName : {
        timestamp : point.timestamp ,
        LatLng : point.LatLng
    }
};
这是一个很好的例子。它使用给定的属性创建一个新对象(实际上是三个新对象),并返回对其中最外层的引用

举一些简单的例子:

// Create a blank object (an object with no properties of its own):
var a = {};

// Create an object with a `name` property with the value "Fred"
var b = {name: "Fred"};

// Create an object with a `foo` property, which is *another* freshly-created
// object with a `name` property with the value "Barney"
var c = {
    foo: {
        name: "Barney"
    }
};

请回答您的最新问题:

用户名不起作用,我没有为每个时间戳获取一个项目,它只是覆盖了一个条目

当然是这样,您在每个循环上覆盖
历史记录
,而不将先前的副本存储在任何地方。例如,可以将它们存储在数组中:

// add history paths and save data
function AddPath( strTag, strUserName, arrayLatLngPoints, pathColour) {

  var historyArray = [];
  for (var i = 0; i < arrayLatLngPoints.length; i++)
    {
    var point = arrayLatLngPoints[i];
    var pos = new google.maps.LatLng(point.lat, point.lng);

    historyArray[i] = {
        strUserName : {
            timestamp : point.timestamp ,
            LatLng : pos
        }
    };

    var date = new Date( parseInt( point.timestamp));
    addMarkers(point.timestamp, point.lat, point.lng, point.timestamp, strUserName, pathColour, date.toString());
    date = null; 
    }
console.log(historyArray);
}
//添加历史路径并保存数据
函数AddPath(strTag、strUserName、arraylalngpoints、pathColour){
var historyArray=[];
对于(变量i=0;i
问题是什么?@VinceLowe:“用户名不起作用,我没有为每个时间戳获取一个项目,它只是覆盖了一个条目?”当然是这样,你在每个循环上覆盖了
历史记录,而没有将以前的副本存储在任何地方。我已经更新了答案,以显示一种可能的存储方式(在数组中)。
// Create a blank object (an object with no properties of its own):
var a = {};

// Create an object with a `name` property with the value "Fred"
var b = {name: "Fred"};

// Create an object with a `foo` property, which is *another* freshly-created
// object with a `name` property with the value "Barney"
var c = {
    foo: {
        name: "Barney"
    }
};
// add history paths and save data
function AddPath( strTag, strUserName, arrayLatLngPoints, pathColour) {

  var historyArray = [];
  for (var i = 0; i < arrayLatLngPoints.length; i++)
    {
    var point = arrayLatLngPoints[i];
    var pos = new google.maps.LatLng(point.lat, point.lng);

    historyArray[i] = {
        strUserName : {
            timestamp : point.timestamp ,
            LatLng : pos
        }
    };

    var date = new Date( parseInt( point.timestamp));
    addMarkers(point.timestamp, point.lat, point.lng, point.timestamp, strUserName, pathColour, date.toString());
    date = null; 
    }
console.log(historyArray);
}
var obj = {strUserName: {timestamp: point.timestamp, lat: point.lat, long: point.long}}