js之如何刪除多層數(shù)組嵌套的最后一層中的部分?jǐn)?shù)據(jù)
js刪除多層數(shù)組嵌套的最后一層中的部分?jǐn)?shù)據(jù)
我想刪除arr中,第二個(gè)對(duì)象里面的aList中的{id:153,name: daad}的元素。
const arr = [
{
id: 1,
name: 'llaq',
aList: [
{
id: 20,
name: 'hdka',
},
{
id: 12,
name: 'loqas',
},
]
},
{
id: 2,
name: '略略略',
aList: [
{
id: 21221,
name: 'dqd',
},
{
id: 152,
name: 'daad',
},
{
id: 19522,
name: 'kka',
},
]
},
{
id: 3,
name: '哐哐哐',
aList: [
{
id: 32,
name: '32',
},
{
id: 132,
name: '32daa',
},
{
id: 1232,
name: 'da',
},
]
},
]
// id是aList中要?jiǎng)h除的id
const handleClose = (id: number) => {
const list = arr.map(item => {
//修改被刪除的item的數(shù)據(jù)
item.aList = item?.aList?.filter(v => v.id !== id);
return item;
})
console.log(list,'list');
};多層嵌套數(shù)組拿到每一層數(shù)據(jù),可以組成新數(shù)組,也可以把內(nèi)部數(shù)據(jù)改變
數(shù)據(jù)結(jié)構(gòu)如下
data: [{
? ? ? ? ? id: 0,
? ? ? ? ? name: "1",
? ? ? ? ? children: [{
? ? ? ? ? ? ? id: 0 - 1,
? ? ? ? ? ? ? name: "0-1",
? ? ? ? ? ? ? children: [{
? ? ? ? ? ? ? ? ? id: 0 - 1 - 1,
? ? ? ? ? ? ? ? ? name: "0-1-1",
? ? ? ? ? ? ? ? ? children: [{...}]
? ? ? ? ? ? ? ? }]
? ? ? ? ? ? }]
? ? ? ? }]以此類(lèi)推,數(shù)組里面還有數(shù)組,還有數(shù)組這種樣式
處理方法
tree(res) {
? ? ? for (const item of res) {
?? ?//這里可以處理很多數(shù)據(jù),比如遍歷一個(gè)數(shù)據(jù)數(shù)組匹配數(shù)據(jù)更改數(shù)據(jù)
? ? ? ? item.label = item.name;//如果label存在就是改變值,如果不存在就是往數(shù)組里面添加了一條新數(shù)據(jù)
? ? ? ? //如果item.children存在,就再調(diào)用一次函數(shù),傳數(shù)組給他,直到?jīng)]有兒子結(jié)束
? ? ? ? if (item.children) {
? ? ? ? ? this.tree(item.children);
? ? ? ? }
? ? ? }
? ? },遍歷成新數(shù)組
tree(res,list) {
? ? ? for (const item of res) {
? ? ? ? list.push(item.id)
? ? ? ? if (item.children) {
? ? ? ? ? this.tree(item.children,list);
? ? ? ? }
? ? ? }
? ? },傳數(shù)組以及需要形成的新數(shù)組,循環(huán)一次push一次,直到循環(huán)條件不成立就結(jié)束
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JS實(shí)現(xiàn)從網(wǎng)頁(yè)頂部掉下彈出層效果的方法
這篇文章主要介紹了JS實(shí)現(xiàn)從網(wǎng)頁(yè)頂部掉下彈出層效果的方法,實(shí)例分析了javascript創(chuàng)建彈出窗口及窗口掉落與抖動(dòng)效果實(shí)現(xiàn)方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08
javascript實(shí)現(xiàn)類(lèi)似超鏈接的效果
這篇文章主要介紹了使用javascript實(shí)現(xiàn)類(lèi)似超鏈接的效果的特效,通過(guò)示例熟悉javascript事件,這里推薦給大家。2014-12-12
使用reflect-metadata實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)與日志記錄
在?TypeScript?生態(tài)系統(tǒng)中,reflect-metadata?庫(kù)是一種強(qiáng)大的工具,它允許我們?cè)谶\(yùn)行時(shí)獲取更多的類(lèi)型信息,下面我們來(lái)看看如何在前端項(xiàng)目中使用reflect-metadata以及它能實(shí)現(xiàn)的能力吧2024-12-12
使用webpack搭建pixi.js開(kāi)發(fā)環(huán)境
這篇文章主要介紹了使用webpack搭建pixi.js開(kāi)發(fā)環(huán)境,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
微信小程序修改swiper默認(rèn)指示器樣式的實(shí)例代碼
這篇文章主要介紹了微信小程序修改swiper默認(rèn)指示器樣式的實(shí)例代碼,代碼塊是從微信開(kāi)發(fā)文檔中心復(fù)制的代碼塊,在此基礎(chǔ)上修改官方swiper樣式,需要的朋友可以參考下2018-07-07
使用javascript做時(shí)間倒數(shù)讀秒功能的實(shí)例
今天小編就為大家分享一篇關(guān)于使用javascript做時(shí)間倒數(shù)讀秒功能的實(shí)例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01
javascript實(shí)現(xiàn)簡(jiǎn)單的分頁(yè)特效
下面給大家匯總的幾個(gè)javascript實(shí)現(xiàn)的分頁(yè)代碼,當(dāng)然必須要結(jié)合后臺(tái)代碼實(shí)現(xiàn)。大家可以自行分析一下代碼,希望能夠給大家?guī)?lái)一定的幫助2015-08-08

