Tôi đang có một mảng JSON có thuộc tính là id và parentActivityId.Không thể đẩy đối tượng vào mảng mẹ bằng cách xác định id cha của đối tượng trong javascript
$scope.data = [
{
id: 1,
activityName: "Drilling",
parentActivityId: 0,
items: [
{
id: 2,
activityName: "Blasting",
parentActivityId: 1,
items: [
{
id: 3,
activityName: "Ann",
parentActivityId: 2,
items: [],
},
{
id: 4,
activityName: "Ann",
parentActivityId: 2,
items: [],
}
]
},
{
id: 5,
activityName: "Transport",
parentActivityId: 1,
items: [
{
id: 6,
activityName: "Daniel",
parentActivityId: 5,
items: [],
}
]
}
]
}
];
Tôi muốn đẩy một mục mới dựa trên mục mới parentActiityId
.Công sẽ có một mới id
. Ví dụ: Nếu đối tượng của tôi là như thế này:
{
id: 7,
activityName: "Drilling",
parentActivityId: 1,
items: []
}
sau đó đối tượng của tôi sẽ giống như thế này ..
$scope.data = [
{
id: 1,
activityName: "Drilling",
parentActivityId: 0,
items: [
{
id: 2,
activityName: "Blasting",
parentActivityId: 1,
items: [
{
id: 3,
activityName: "Ann",
parentActivityId: 2,
items: [],
},
{
id: 4,
activityName: "Ann",
parentActivityId: 2,
items: [],
},
{
id: 7,
activityName: "Drilling",
parentActivityId: 2,
items: [],
}
]
},
{
id: 5,
activityName: "Transport",
parentActivityId: 1,
items: [
{
id: 6,
activityName: "Daniel",
parentActivityId: 5,
items: [],
}
]
}
]
}
];
tôi đã cố gắng bằng cách đưa ra này vòng lặp for ..
var arrObj = {
id: 7,
activityName: "Drilling",
parentActivityId: 1,
items: []
};
function populateObj(arrObj) {
for (var i = 0; i < $scope.data.length; i++) {
if ($scope.data[i].id == arrObj.parentActivityId) {
$scope.data.push(arrObj);
}
}
};
populateObj(arrObj);
mà sẽ chỉ đẩy đến parent.I muốn xác định con cũng như trong vòng lặp for và push tới đối tượng mảng cụ thể bằng cách xác định thr parentActivityId. Bất kỳ trợ giúp nào cũng sẽ được đánh giá cao.
Nếu không có dữ liệu tức là., Dữ liệu = []. Tôi không thể thêm phần tử con mới? – forgottofly
thì bạn cần ''nếu (các mục trong nút) {node.items.push (con); } else {data.push (con); } '. nhưng bạn phải chú ý đến 'parentId' có thể sai. –
Cảm ơn @Nina Scholz..Its làm việc theo cách tôi cần.Có thể bạn hãy giải thích mã của bạn. Tôi không quen với chức năng giảm. Bạn có thể nhắn tin cho tôi tại [email protected] – forgottofly