【发布时间】:2022-11-23 23:25:20
【问题描述】:
为了减少我的最后一个问题(有点复杂)。是否可以动态更改“数组对象”的名称?
我有一个变量列表(结构必须保持这样):
var markers = []
var markerHouse = ... markers.push(markerHouse);
var markerAnimal = ... markers.push(markerAnimal);
var markerCar = ... markers.push(markerCar);
// aso.
我尝试了很多方法来更改数组对象名称,比如这个:
var NewMarkers = "markerHouse, markerAnimal"; // string content, generated by a function
var NewMarkersArray = NewMarkers.split(","); // create array of this string
var NewGroup = L.layerGroup([NewMarkersArray]); // request for array of objects
NewGroup的结果是:
L.layerGroup(["markerHouse", "markerAnimal"]);
我得到一个“TypeError:不能使用'in'运算符在“markerHouse”中搜索“_leaflet_id”......
但我需要的是:
L.layerGroup([markerHouse, markerAnimal]);
【问题讨论】:
-
如果您需要访问这样的变量,则不应使用变量。相反,使用值数组或具有属性名称的对象。然后你可以干净利落地做你想做的事。
-
NewMarkers是如何创建的?另外,var markerHouse = ... markers.push(markerHouse);是什么意思? -
我同意你的看法,但传单似乎不支持经典的“带有属性名称的对象方式”,如果我是对的话。
-
您可能需要一个带有
const marker = { house: "value", car: "value2", animal: "", etc}的对象,然后根据您的要求创建一个过滤值数组 -
@adiga 我通过一个函数循环获得了这个值,该函数循环搜索特定内容。 “var markerHouse = ....”的其余部分也只是坐标。
标签: javascript jquery leaflet