第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

javascript重新計(jì)算深度嵌套的數(shù)組元素?cái)?shù)

javascript重新計(jì)算深度嵌套的數(shù)組元素?cái)?shù)

米琪卡哇伊 2022-06-09 17:27:00
我得到以下數(shù)組:let data =  [        {"title": {number: 1},            "children": [                {"title": {number: 1.1}},                {"title": {number: 1.2}},                {"title": {number: 1.3}},                {"title": {number: 1.4}},                {"title": {number: 1.5}}            ]        },        {"title": {number: 2},            "children": [                {"title":{number: 2.1}},                {"title":{number: 2.2},                    "children": [                        {"title":{number: 2.2.1}},                        {"title":{number: 2.2.2}},                        {"title":{number: 2.2.3}},                        {"title":{number: 2.2.4}}                     ]                },                {"title":{number: 2.3}},                {"title":{number: 2.4}}            ]        },        {"title": {number: 3},            "children": []        }    ];這個(gè)數(shù)組的每個(gè)元素都可以改變它的位置,可以添加新元素,可以刪除現(xiàn)有元素。任務(wù)是重新計(jì)算元素編號以保持其正確順序。例如,如果2.2.2刪除了帶有數(shù)字的元素,則其他元素變?yōu)?.2.1,2.2.2和2.2.3。如果某個(gè)元素連同其子元素一起被移除,則所有其他元素的數(shù)字也應(yīng)重新計(jì)算。歡迎任何想法如何做到這一點(diǎn)。謝謝
查看完整描述

1 回答

?
一只甜甜圈

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊

您可以創(chuàng)建遞歸函數(shù),每次您的對象結(jié)構(gòu)更改時(shí)都會調(diào)用該函數(shù)以重新計(jì)算樹中每個(gè)元素的位置。


function recalc(data, prev = '') {

  data.forEach((e, i) => {

    let dot = prev ? '.' : '';

    let number = prev + dot + (i + 1);


    if (e.children) {

      recalc(e.children, number)

    }


    if (e.title) {

      e.title.number = number

    }

  })

}


const data1 = [{"title":{"number":1},"children":[{"title":{"number":1.1}},{"title":{"number":1.2}},{"title":{"number":1.3}},{"title":{"number":1.4}},{"title":{"number":1.5}}]},{"title":{"number":2},"children":[{"title":{"number":2.1}},{"title":{"number":2.2},"children":[{"title":{"number":"2.2.1"}},{"title":{"number":"2.2.2"}},{"title":{"number":"2.2.3"}},{"title":{"number":"2.2.4"}}]},{"title":{"number":2.3}},{"title":{"number":2.4}}]},{"title":{"number":3},"children":[]}]

recalc(data1);

console.log(data1)


const data2 = [{"title":{"number":1},"children":[{"title":{"number":1.1}},{"title":{"number":1.2}},{"title":{"number":1.5}}]},{"title":{"number":2},"children":[{"title":{"number":2.1}},{"title":{"number":2.2},"children":[{"title":{"number":"2.2.3"}},{"title":{"number":"2.2.4"}}]},{"title":{"number":2.3}},{"title":{"number":2.4}}]},{"title":{"number":3},"children":[{title: {}, children: [{title: {}}, {title: {}}]}]}]

recalc(data2);

console.log(data2)


查看完整回答
反對 回復(fù) 2022-06-09
  • 1 回答
  • 0 關(guān)注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號