从对象获取属性值,并将其分配给javascript

时间:2019-03-11 23:01:41

标签: javascript arrays loops iterator javascript-objects

我有这个对象,我需要获取属性name的值以将其分配给变量,以便可以将其用于菜单中的每个选项。这是返回的数据:

“parentArrayOfObjects”: [
    {
     “data”: {
        “current”: {
           “id”: 0, 
           “name”: “Winter”
         }   
      }
    },
    {
      “data”: {
         “current”: {
            “id”: 0, 
            “name”: “Spring”
          }   
        }
     }    
 ]

使用上述方法,对于每个索引为0的菜单,data.current.name属性的值都相同,这不是我想要的。请告诉我我在做什么错。谢谢。

// returns same name in all menus
var getCurrentChildPropertyName = (function(){
    for (var value in parentArrayOfObjects) {
         var currentChildProperty=parentArrayOfObjects[value].data.current;
         if( currentChildProperty !== null){                                                        
             return currentChildProperty.name;
         }
    }
})();

// returns same name in all menus
var getCurrentChildPropertyName = (function(){
    for ( var i = 0; i < parentArrayOfObjects.length; i++) {
          var currentChildProperty = parentArrayOfObjects[i].data.current;
          if( currentChildProperty !== null){
              return currentChildProperty.name;
          }
     }
})();


// Use different returned name in each menu (ExtJs3)
     dataStore.insert(0, [new Ext.data.Record({
                 id: 0,                                                    
                 name: getCurrentChildPropertyName
     })

1 个答案:

答案 0 :(得分:1)

const x = {'parentArrayOfObjects': [
  {
   'data': {
      'current': {
         'id': 0,
         'name': 'Winter'
       }
    }
  },
  {
    'data': {
       'current': {
          'id': 0,
          'name': 'Spring'
        }
      }
   }
]}

const results = x.parentArrayOfObjects.map((item) => item.data.current.name);

console.log(results); //[ 'Winter', 'Spring' ]