创建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}}