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

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

基于循環(huán)的擴(kuò)展算法

基于循環(huán)的擴(kuò)展算法

墨色風(fēng)雨 2023-11-02 20:17:57
我的算法計(jì)算通過(guò) DOM 的路徑。它從給定的組件開(kāi)始并沿樹(shù)向上。每次父組件具有特定屬性時(shí),算法都會(huì)將其值添加到路徑中。_computePath(aComponent) {  let result = '';  let parent = aComponent.parentNode;  while (parent.tagName !== 'MY-ROOT-COMPONENT') {    if (parent.hasAttribute('my-attribute')) {      result = `/${parent.getAttribute('my-attribute')}${result}`;    }    parent = parent.parentNode;  }  return result;}在我的應(yīng)用程序的其他部分,我需要一個(gè)稍微不同的版本。_computePath(aComponent) {  let result = '';  let parent = aComponent.parentNode;  while (parent.tagName !== 'MY-ROOT-COMPONENT') {    if (parent.tagName === 'SPECIAL-COMPONENT') {      result = null;      break;    }    if (parent.condition === 'special') {      result = null;      break;    }    if (parent.hasAttribute('my-attribute')) {      result = `/${parent.getAttribute('my-attribute')}${result}`;    }    parent = parent.parentNode;  }  return result;}如何在不重復(fù)代碼的情況下擴(kuò)展第一個(gè)循環(huán)的算法?可能有一個(gè)非常簡(jiǎn)單的解決方案,但不知何故我無(wú)法弄清楚。
查看完整描述

1 回答

?
慕神8447489

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

讓函數(shù)接受回調(diào)來(lái)測(cè)試導(dǎo)致其中斷的條件。


_computePath(aComponent, stopfun = parent => false) {

  let result = '';

  let parent = aComponent.parentNode;


  while (parent.tagName !== 'MY-ROOT-COMPONENT') {

    if (stopfun(parent)) {

      result = null;

      break;

    }


    if (parent.hasAttribute('my-attribute')) {

      result = `/${parent.getAttribute('my-attribute')}${result}`;

    }

    parent = parent.parentNode;

  }


  return result;

}


let result1 = obj1._computePath(component1); // no extra stop check

let result2 = obj2._computePath(component2, parent => parent.tagName === 'SPECIAL-COMPONENT' || parent.condition === 'special');


查看完整回答
反對(duì) 回復(fù) 2023-11-02
  • 1 回答
  • 0 關(guān)注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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