JavaScript:获取对象属性值
我想知道这是否可能,如下所示:JavaScript:获取对象属性值,javascript,jquery,Javascript,Jquery,我想知道这是否可能,如下所示: var layers = {}; layers.group3 = new L.MarkerClusterGroup(); //some group of objects layers.group3.name = "somestr"; //here i want to give a property name to group3 object. function checkLayers(data, t) { for (var name in lay
var layers = {};
layers.group3 = new L.MarkerClusterGroup(); //some group of objects
layers.group3.name = "somestr"; //here i want to give a property name to group3 object.
function checkLayers(data, t) {
for (var name in layers) {
var value = layers[name];
alert("name: "+name+ " value: "+value);
if(layers.group3.name == t){
//do something
}
}
}
如何访问group3的name属性。它不会显示在警报中。我还想比较参数“t”的值 如果要通过迭代获得
名称
属性,必须检查迭代的属性名称是否为group3
。一旦确定拥有group3
属性,就可以访问name属性。当在层中使用时,for…in
循环将迭代对象的每个属性,它将迭代所有层
属性,由于group3
是layers
上的一个属性,您无法通过简单地迭代layers
中的属性来访问group3.name
属性
for (var name in layers) {
if(name == "group3" && layers[name].name = t){
delete layers[name];
}
}
不需要迭代,这可以做得更简单:
alert(layers.group3.name);
我修改了你的代码。
它工作得很好:
var layers = {};
layers.group3 = {};
layers.group3.name = "somestr"; //here i want to give a property name to group3 object.
function checkLayers(data, t) {
for (var name in layers) {
var value = layers[name];
console.log("name: ", name , " value: " , value);
if(layers.group3.name == t){
console.log(layers.group3.name);
}
}
}
checkLayers('', 'somestr');
控制台中的结果:
name: group3 value: Object {name: "somestr"}
somestr
for(层中的变量名称)
仅在层的属性上循环。您的name
属性是group3
对象的属性,而不是层的属性。感谢您的回复,好的,我找到了group3的name属性,但是一旦它与参数“t”匹配,我想完全删除该对象-“group3”-我可以实现吗??