DFS这里是否能调整为尾递归
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 35/100
- issue の種類
- リファクタリング
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- react, typescript
- 領域
- frontend
調査の方向性
src/hooks/useFilterTreeData.ts のリンク先の dig 関数付近から始め、再帰的なフィルタリングが子要素、マッチ、および結果の順序をどのように処理しているかを調べます。フィルタリングの動作や返されるツリーデータを変更せずに DFS を末尾再帰に調整できるか判断し、その後、既存のプロジェクトチェックでリグレッションがないことを確認します。
索引モデルが issue の本文から書いたものです。
説明
function dig(list: DefaultOptionType[], keepAll: boolean = false): DefaultOptionType[] {
function digRecursive(list: DefaultOptionType[], result: DefaultOptionType[]): DefaultOptionType[] {
if (list.length === 0) {
return result;
}
const dataNode = list[0];
const children = dataNode[fieldChildren];
const match = keepAll || filterOptionFunc(searchValue, fillLegacyProps(dataNode));
const childList = dig(children || [], match);
if (match || childList.length) {
result.push({
...dataNode,
isLeaf: undefined,
[fieldChildren]: childList,
});
}
return digRecursive(list.slice(1), result);
}
return digRecursive(list, []);
}
- 主要言語
- TypeScript
- スター
- 312
- フォーク
- 204
- 平均マージ
- 37分
- マージ済み PR(30日)
- 1
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
react-component/tree-select のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 52/100
react-component/tree-select#652 ·
-
treeTitleRender 回显时函数中的targetItem中只有value属性,只return targetItem.label时有效,return 拼接数据只能获取到value属性 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
react-component/tree-select#528 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 35/100
react-component/tree-select#485 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 28/100
react-component/tree-select#466 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 48/100
react-component/tree-select#437 · リアクション 3 件 ·
react-component/tree-select の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
vercel-labs/just-bash#464 ·
-
looksLikeSlug() is ASCII-only, so non-Latin entity slugs (e.g. Korean) skip exact match and collapse オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
TanStack/tanstack.com#1293 ·