Sto avendo un array JSON con proprietà come id e parentActivityId.Non è possibile inserire un oggetto nell'array padre identificando l'id padre dell'oggetto in 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: [],
}
]
}
]
}
];
vorrei spingere un nuovo elemento basato sul nuovo elemento parentActiityId
.La sarà avere un nuovo id
. Esempio: Se il mio oggetto è come questo:
{
id: 7,
activityName: "Drilling",
parentActivityId: 1,
items: []
}
poi il mio oggetto sarà simile a questa ..
$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: [],
}
]
}
]
}
];
ho provato dando questo ciclo 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);
che spingerò solo al genitore. Voglio identificare anche il bambino nel ciclo for e il push nell'oggetto array specifico identificando thr parentActivityId.Qualsiasi aiuto sarà molto apprezzato.
Se non ci sono dati es., Dati = []. Non riesco ad aggiungere un nuovo elemento figlio? – forgottofly
quindi hai bisogno di ''if (items' in node) {node.items.push (child); } else {data.push (child); } '. ma si presta attenzione al possibile errore 'parentId'. –
Grazie a @Nina Scholz..Il modo di cui ho bisogno. Puoi spiegare il tuo codice.Non ho familiarità con la funzionalità di riduzione. Puoi mandarmi un messaggio a [email protected] – forgottofly