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