سلام. من یک لیست دارم. بعضی اوقات قسمت 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);آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟