Javascript 数组中嵌套对象的Angularjs数组

Javascript 数组中嵌套对象的Angularjs数组,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我有一个位置数组和嵌套的用户对象,如下所示: [ position: { title: Developer, user: { name: Albert } }, position: { title: CEO, user: { name: Smith } } ] 如何使用Angularjs获得[user,user]数组?假设这是伪代码(因为它缺少一些{和},您需要名为Developer、Albert、CEO和Smith的变量-我在工作示

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

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

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

假设这是伪代码(因为它缺少一些
{
}
,您需要名为Developer、Albert、CEO和Smith的变量-我在工作示例中修复了这些变量),您可以使用:

使用
angular.forEach()


首先,这个东西不需要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);
             }
          }
        }
    }
var用户=[];
变量位置=[{
位置0:{
标题:“开发商”,
用户:{name:'Albert'}
},
职位1:{
标题:“首席执行官”,
用户:{name:'Smith'}
}
}] 
对于(变量i=0;i

users数组将拥有用户。

我刚刚尝试了这段代码,效果很好

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);

我认为您所追求的解决方案与angular无关,但对于纯香草js,我将其标记为angular,因为我使用的是angular框架。香草js解决方案很适合我。@gion_13它本可以做到的。Angular具有polyfills.forEach的
Angular.forEach
。这可能很容易与解决方案相关。您应该首先在代码段中修复该问题,因为它缺少一些
{
,也缺少
}
。据我所见,它似乎不是一个数组,而是听起来像一个单一的对象。但是如果它真的是一个位置数组,它应该是这样的:
[{title:'A',user:{}},{title:'B',user:{}]
或者至少:
[{position:{title:'A',user:{}}},{position position:{title:'B',user:{}}}]
你说得对@MehranHatami,我忘了提到我在用咖啡脚本。这只是给像我这样的新手的一个提示,{val[“position idx].user.name;|返回值数组| val[“Position”+idx]。user;|返回一个对象数组。
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);
             }
          }
        }
    }
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);