javascript中的警报对象

时间:2014-01-02 14:04:17

标签: javascript class object nested

考虑我有以下代码:

var Descriptions = {
    test1: {
        name: 'test1',
        desc: 'Clubhouse' 
    },
    test2: {
        name: 'test2',
        desc: 'Pub'
    }
};

如何提醒所有'name'或所有'desc'?以下内容不起作用Descriptions['name']

  var DescriptionsName = Descriptions['name'] <------help here;



var Descriptionsholder =  `'<div class="wrapper">'+DescriptionsName +'</div>';`



$(Descriptionsholder ).appendTo($("#main-content"));

Div风格

.wrapper {
position: relative;
margin: 40px;
float: left;
width:200px;
height:200px;
overflow: hidden;
 -webkit-box-shadow: 1px 1px 1px 1px grey; 
-moz-box-shadow:  1px 1px 1px 1px grey;  
 box-shadow: 1px 1px 1px 1px grey;
}

3 个答案:

答案 0 :(得分:2)

你可以试试这个

for (var x in Descriptions)
{
   alert(Descriptions[x].name);
}

您可以使用for in循环来迭代对象的属性。

由于test1test2是您的Descriptions对象的属性,并且在访问test1test2的值之后,例如Descriptions[x]其中x可以是test1或test2,您可以访问与Descriptions[x].nameDescriptions[x].desc相同的name或desc属性。

修改

获取所有名称,您可以尝试这个

var DescriptionsName = [];
for (var x in Descriptions)
{
   DescriptionsName.push(Descriptions[x].name);
}

var Descriptionsholder = '<div class="sandwich-wrapper">'+DescriptionsName.join() +'</div>';

$(Descriptionsholder).appendTo($("#main-content"));

已更新

获取所有名称,您可以尝试这个

for (var x in Descriptions)
{
   var Descriptionsholder = '<div class="sandwich-wrapper">'+Descriptions[x].name +'</div>';
   $(Descriptionsholder).appendTo($("#main-content"));
}

答案 1 :(得分:0)

Object.keys获取一个对象,并返回其所有属性名称的列表。对那些可以获得值的map进行操作。这样就可以构建所有名称的列表。

var DescriptionsNames = Object.keys(Descriptions).map(function(key) {
    return Descriptions[key].name;
});

此后DescriptionsNames将是原始对象中所有name属性的列表。

编辑:在映射的函数中遗漏.name

答案 2 :(得分:-3)

编辑:

for (var test in Descriptions) alert(Descriptions[test].name);