如何使用 1 个公共 json 字段(嵌套数组)映射 2 个数组
how to map 2 arrays using 1 common json field (nested array)
我有 2 个数组要返回...在本例中为 Employments 和 Users。他们都有一个共同的领域'id',我想用那个领域来映射。
我目前可以使用 for 循环来映射它,但是因为我在嵌套数组上循环...我只能捕获数组第一部分的映射。
我的 json 个对象:
$scope.Users = [{
id: 1,
name: "Ryan"
}, {
id: 2,
name: "Julie"
}, {
id: 3,
name: "Stu"
},
{
id: 4,
name: "Holly"
}];
$scope.Employments = [{
categoriesBag: [
{
category: [
{
user_id: 1,
title: "manager"
},
{
user_id: 2,
title: "student"
}
]
},
{
category: [
{
user_id: 3,
title: "worker"
},
{
user_id: 4,
title: "facilty"
}
]
}
]
}];
我用来映射数据的 for 循环:
$scope.getCategory = function(id) {
var employmentCategories = $scope.Employments.categoriesBag[0].category;
for (var i = 0; i < employmentCategories[0].category.length; i++) {
if (employmentCategories[0].category[i].user_id === id) {
return employmentCategories[0].category[i].title;
}
}
};
因为我指定我只想要第一个数组 employmentCategories[0],所以其他两个用户不包含在 for 循环中。有没有办法让我在循环内做一个循环以仅遍历嵌套类别?
您可以使用嵌套循环
$scope.getCategory = function(id) {
for (bag in $scope.Employments.categoriesBag) {
for (category in bag.category) {
if (category.user_id == id){
return category.title
}
}
}
}
我有 2 个数组要返回...在本例中为 Employments 和 Users。他们都有一个共同的领域'id',我想用那个领域来映射。
我目前可以使用 for 循环来映射它,但是因为我在嵌套数组上循环...我只能捕获数组第一部分的映射。
我的 json 个对象:
$scope.Users = [{
id: 1,
name: "Ryan"
}, {
id: 2,
name: "Julie"
}, {
id: 3,
name: "Stu"
},
{
id: 4,
name: "Holly"
}];
$scope.Employments = [{
categoriesBag: [
{
category: [
{
user_id: 1,
title: "manager"
},
{
user_id: 2,
title: "student"
}
]
},
{
category: [
{
user_id: 3,
title: "worker"
},
{
user_id: 4,
title: "facilty"
}
]
}
]
}];
我用来映射数据的 for 循环:
$scope.getCategory = function(id) {
var employmentCategories = $scope.Employments.categoriesBag[0].category;
for (var i = 0; i < employmentCategories[0].category.length; i++) {
if (employmentCategories[0].category[i].user_id === id) {
return employmentCategories[0].category[i].title;
}
}
};
因为我指定我只想要第一个数组 employmentCategories[0],所以其他两个用户不包含在 for 循环中。有没有办法让我在循环内做一个循环以仅遍历嵌套类别?
您可以使用嵌套循环
$scope.getCategory = function(id) {
for (bag in $scope.Employments.categoriesBag) {
for (category in bag.category) {
if (category.user_id == id){
return category.title
}
}
}
}