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”-我可以实现吗??