我的Javascript代码是:
neighborhoods = [
{lat: 52.511, lng: 13.447},
{lat: 52.549, lng: 13.422},
{lat: 52.497, lng: 13.396},
{lat: 52.517, lng: 13.394}
];
我想在java脚本中动态生成这个数组。均值是动态的,键是静态的,即“lat”,“lng”。你可以像我想在一个循环中生成这个数组一样。 例如:
for (int i=0;i<5;i++){
val1=1, val2=2;
// here generate this array using above value
val1 = val1+1; val2=val+1;
}
这只是一个例子..我希望现在要求很清楚.. 请帮忙
答案 0 :(得分:1)
您可以创建一个数组,然后将具有属性的对象放在其中:
var neighborhoods = [];
neighborhoods.push({lat: 52.511, lng: 13.447});
或者,如果你的lat,lng值在变量中,所以你想动态构建对象,你可以这样做:
var neighborhoods = [];
var obj = {};
obj.lat = lat;
obj.lng = lng;
neighborhoods.push(obj);
而且,如果您有一个lat,lng数据源,您可以使用for
循环进行迭代,您可以将对象创建和.push()
放入for
循环中。
例如,如果你有一个交替的lat,lng值的数组,你可以这样做:
var values = [52.511, 13.447, 52.549, 13.422, 52.497, 13.396, 52.517, 13.394];
var neighborhoods = [];
for (var i = 0; i < values.length; i+=2) {
neighborhoods.push({lat: values[i], lng: values[i+1]});
}
document.write(JSON.stringify(neighborhoods));
&#13;
答案 1 :(得分:1)
并不完全清楚如何计算或计算出值,但一个简单的例子是:
var lat = 52, lng = 13;
var neighborhoods = [];
for (int i=0;i<5;i++){
lat += 1;
lng += .1;
neighborhoods.push({lat: lat , lng : lng })
}
答案 2 :(得分:1)
你非常接近。首先,如果你想使用数组下标表示法,你必须自己传递密钥(在你的情况下是字符串,像这样):
var myAssociativeArr = [];
for (var i=0; i < 5; i++) {
var newElement = {};
newElement['id'] = val1;
newElement['lname'] = val2;
newElement['fname'] = val3;
myAssociativeArr.push(newElement);
}
如果键名是已知字符串,则通常最好使用完全等效的对象属性表示法:
var myAssociativeArr = [];
for (var i=0; i <5; i++) {
var newElement = {};
newElement.id = val1;
newElement.lname = val2;
newElement.fname = val3;
myAssociativeArr.push(newElement);
}