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