从对象获取属性值并将其分配给javascript中的变量

问题描述 投票:0回答:1

我有这个对象,我需要获取属性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
     })
javascript arrays loops iterator javascript-objects
1个回答
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' ]
© www.soinside.com 2019 - 2024. All rights reserved.