来自数组的嵌套对象的 Angularjs 数组



>我有一个位置和嵌套用户对象的数组,如下所示:

[ 
  position: {
    title: Developer,
    user: { name: Albert }
    },
  position: {
    title: CEO,
    user: { name: Smith }
    }
] 

如何使用 Angularjs 获取 [user, user] 数组?

假设这是伪代码(因为它缺少一些{},并且您需要称为Developer,Albert,首席执行官和Smith的变量 - 我已经在工作示例中修复了这些变量)您可以使用Array.map:

var arr = [{ 
  Position0: {
    title: Developer,
    user: { name: Albert }
    },
 {
  Position1 : {
    title: CEO,
    user: { name: Smith }
    }
}];
var result = arr.map(function(val, idx) {
    return val["Position" + idx].user.name;
});

工作示例

我刚刚尝试了这段代码,并且可以工作...

var positions, users;
users = [];
positions = [
  {
    title: 'Developer',
    user: { name: 'Albert' }
  },
  {
    title: 'CEO',
    user: { name: 'Smith' }
  }
];

angular.forEach(positions, function(position) {
  users.push(position.user);
});
console.log(users);
首先,

这个东西不需要 angularjs。

您可以执行此操作的方法是用于每个循环:

var users = [];
var positions = [{ 
  Position0: {
    title: 'Developer',
    user: { name: 'Albert' }
    },
  Position1 : {
    title: 'CEO',
    user: { name: 'Smith' }
    }
}] 
    for(var i =0; i< positions.length; i++){
        for(var j in positions[i]){ //used to loop on object properties
          if(positions[i].hasOwnProperty(j)){ //checking if the property is not inherited
             if(positions[i][j].user){ //checking if the property exist, then only will push it to array, so that array doesnot have undefined values
                users.push(positions[i][j].user);
             }
          }
        }
    }
用户

数组将具有用户。

使用 angular.forEach()

var arr1=[]
var arr=[ 
  position: {
    title: Developer,
    user: { name: Albert }
    },
  position: {
    title: CEO,
    user: { name: Smith }
    }
];
angular.forEach(arr,function(value,key){
   arr1[key]=value.position.user;
});
console.log(arr1);

最新更新