在javascript

时间:2015-08-22 15:57:57

标签: javascript jquery

我的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;

    }

这只是一个例子..我希望现在要求很清楚.. 请帮忙

3 个答案:

答案 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值的数组,你可以这样做:

&#13;
&#13;
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;
&#13;
&#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);
 }