سلام. من یک لیست دارم. بعضی اوقات قسمت children آرایه خالی دریافت میکنم. میخوام اگه آرایه خالی بود کلا آبجکت داخلی حدف بشه
const items= [{name:"test1",children:[{name:"child1", children:[{name:"sub-child1"}]},{name:"child2", children:[]}]}]
یعنی آرایه بالا باید تغیییر پیدا کنه به
const items= [{name:"test1",children:[{name:"child1", children:[{name:"sub-child1"}]}]}]
ممنون میشم کمکم کنید
@kamran.davar
سلام. این به صورت تو در تو تا بینهایت delete رو انجام میده.
const items = [
{
name: 'test1',
children: [
{ name: 'child1', children: [{ name: 'sub-child1' }] },
{ name: 'child2', children: [] },
],
},
];
const recursiveDelete = (arr) => {
arr.map((item, index) => {
if (!item.children || item.children.length == 0) {
arr.splice(index, 1);
}
if (item.children && item.children.length !== 0) {
recursiveDelete(item.children);
}
});
};
recursiveDelete(items);
console.log(items);
شما می تونید با استفاده از
https://jsonformatter.curiousconcept.com/
آرایه هاتون رو بهتر کنید.
[
{
"name":"test1",
"children":[
{
"name":"child1",
"children":[
{
"name":"sub-child1"
}
]
},
{
"name":"child2",
"children":[
]
}
]
}
]
[
{
"name":"test1",
"children":[
{
"name":"child1",
"children":[
{
"name":"sub-child1"
}
]
}
]
}
]
لطفا بگید خروجی از کجا میاد.
سوال رو هم بد پرسیدم. یک لیست مثل لیست زیر هست. میخوام اون رو جوری فیلتر کنم که isEmpty= true ها حذف بشن
let arr =[{name:"Report" , children:[{name:"KPI" , isEmpty:true} , {name:"fuel", isEmpty:fale}]}]
سلام @parastooebrahimi
const items = [
{
name: "test1",
children: [
{ name: "child1", children: [{ name: "sub-child1" }] },
{ name: "child2", children: [] },
],
},
];
for (var i = 0; i < items[0].children.length ; i++){
if (items[0].children[i].children.length == 0){
delete items[0].children[i]
}
}
سلام. این به صورت تو در تو تا بینهایت delete رو انجام میده.
const items = [
{
name: 'test1',
children: [
{ name: 'child1', children: [{ name: 'sub-child1' }] },
{ name: 'child2', children: [] },
],
},
];
const recursiveDelete = (arr) => {
arr.map((item, index) => {
if (!item.children || item.children.length == 0) {
arr.splice(index, 1);
}
if (item.children && item.children.length !== 0) {
recursiveDelete(item.children);
}
});
};
recursiveDelete(items);
console.log(items);
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟