很难在标题中解释,但我的问题是: 我正在使用传单创建一个地图。有些信息会非常重复,所以我想创建变量来保存这些信息。虽然要正确显示,但我无法正确连接变量。这可能吗?看下面的代码,看看我的意思。如果我输入变量的单个数据(纬度/经度),所有代码都可以正常工作我不知道如何将somePlace变量中的数据调用到食物变量中。
示例:
var somePlace = [{
"name": "name",
"address":"address"
"lat": "",
"lng": "",
}];
var anotherPlace = [{
"name": "name",
"address":"address"
"lat": "",
"lng": "",
}];
var food = [
{
"name": name.somePlace,
"address": address.somePlace,
"lat": lat.somePlace,
"lng": lng.somePlace,
"details": "info unique to this object"
},{
"name": name.anotherPlace,
"address": address.anotherPlace,
"lat": lat.anotherPlace,
"lng": lng.anotherPlace,
"details": "info unique to this object"
}
];
然后在主JS中,这样的数据被调用。
for (var i = 0; i < somePlace.length; ++i) {
var place = somePlace[i].details;
var sP = L.marker([somePlace[i].lat, somePlace[i].lng], {
icon: myIcon
})
.bindPopup(place);
答案 0 :(得分:0)
您的代码存在误解。您希望food
变量包含来自somePlace
和anotherPlace
的信息。
somePlace
和anotherPlace
是对象的数组 ,这意味着您可以通过somePlace[i]
之类的索引访问其元素其中i
是一个整数(如您已粘贴的循环中所述)。
当您从数组中获取对象时(例如,带有var myElement = somePlace[0]
的第一个对象,因为JavaScript中的数组被归零),您可以访问该对象&#39; s 属性通过所谓的点表示法。
因此,在您的示例中,如果您想使用somePlace
数组的第一个元素和anotherPlace
数组的第一个元素来构成food
变量,那么您可以执行某些操作像:
var food = [{
"name": somePlace[0].name,
"address": somePlace[0].address,
"lat": somePlace[0].lat,
"lng": somePlace[0].lng,
"details": "info unique to this variable"
},{
"name": anotherPlace[0].name,
"address": anotherPlace[0].address,
"lat": anotherPlace[0].lat,
"lng": anotherPlace[0].lng,
"details": "info unique to this variable"
}];
对象是键 - 值对,因此例如在例如的情况下。 var foo = { name: "Mary" }
,name
充当key
,Mary
作为值,foo
是变量声明,在本例中是对象。
答案 1 :(得分:0)
如果你期望重复结构,解决这个问题的一种方法是使用构造函数。
// constructor
function Place(name, address, lat, lng, detail) {
this.name = name;
this.address = address;
this.lat = lat;
this.lng = lng;
this.detail = detail;
}
// declare empty array
var food = [];
// instance of Place
var somePlace = new Place('The Greatest Place', '1234 Main St', '45', '-17', 'Unique detail');
food.push(somePlace);
// another instance
var anotherPlace = new Place('Another Place', '777 High St', '47', '-18', 'Another unique detail');
food.push(anotherPlace);
// objects stored in your array
console.log(food);
// access specific object and property
console.log(food[0].name);