関数が常に未定義を返すのはなぜですか?

E1-XP

ネストされたオブジェクトを検索する関数を作成しました。問題はundefined、コンソールに正しく記録されている期待される結果の代わりに返されることです。そこで何が起こっているのですか?

const in1 = [1, 2];
const in2 = [1, 2];

const vDOM = {
  1: {
    ref: in1,
    children: {
      2: {
        ref: in2,
        children: {}
      }
    }
  }
}

const findVDOMNode = function(instance, vDOM) {
  const keys = Object.keys(vDOM);
  const foundKey = keys.find(key => vDOM[key].ref === instance);

  //console.log(foundKey, vDOM, "FK");

  if (!keys.length) {
    console.log('no keys');
    return;
  }
  if (foundKey) {
    console.log('found', vDOM[foundKey]);
    return true; //vDOM[foundKey];
  };

  keys.map(key =>
    findVDOMNode(instance, vDOM[key].children));
}

console.log('res: ', findVDOMNode(in2, vDOM));

実例:https//stackblitz.com/edit/js-dapzsy

ニーナ・ショルツ

return最後に追加するだけです。

return keys.map(key =>
    findVDOMNode(instance, vDOM[key].children));

オブジェクトの値を取得して、インスタンスと照合することができます。オブジェクトが見つかった場合は、そのオブジェクトも確認してください。someインスタンスが見つかった場合、短絡で繰り返し使用する場合。

const
    in1 = [1, 2],
    in2 = [1, 2],
    vDOM = { 1: { ref: in1, children: { 2: { ref: in2, children: {} } } } },
    findVDOMNode = (instance, vDOM) => Object
        .values(vDOM)
        .some(v => v === instance
            || v && typeof v === 'object' && findVDOMNode(instance, v)
        );
  
console.log('res: ', findVDOMNode(in2, vDOM));

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Javascript関数が未定義を返すのはなぜですか?

分類Dev

関数が未定義を返すのはなぜですか?

分類Dev

Javascript関数が作成時に「未定義」を返すのはなぜですか?

分類Dev

このコードが常に未定義を返すのはなぜですか?

分類Dev

myToken変数が常に未定義なのはなぜですか?

分類Dev

この再帰関数が未定義を返すのはなぜですか?

分類Dev

この非同期関数が未定義を返すのはなぜですか?

分類Dev

この関数が未定義を返すのはなぜですか?

分類Dev

このjavascript関数が未定義を返すのはなぜですか?

分類Dev

小道具を使用するときに関数の引数が未定義を返すのはなぜですか?

分類Dev

JavaScriptマップ関数が未定義を返すのはなぜですか?

分類Dev

console.log関数が未定義を返すのはなぜですか?

分類Dev

JavaScript関数呼び出しが未定義を返すのはなぜですか?

分類Dev

再帰関数が未定義を返すのはなぜですか?

分類Dev

JSマップ関数が未定義を返すのはなぜですか?

分類Dev

再帰関数が「未定義」を返すのはなぜですか?

分類Dev

引数を指定しているのに、関数が未定義を返すのはなぜですか

分類Dev

変数tabledataが未定義を返すのはなぜですか?

分類Dev

要素のcss関数に対してjQueryが未定義を返すのはなぜですか?

分類Dev

関数が逆の文字列とともに未定義を返すのはなぜですか

分類Dev

このandroid関数が常にfalseを返すのはなぜですか?

分類Dev

この関数が常にゼロを返すのはなぜですか?

分類Dev

JavaScript関数が常に値を返すのはなぜですか?

分類Dev

isPasswordValid()関数が常にfalseを返すのはなぜですか?

分類Dev

関数が常に同じ値を返すのはなぜですか?

分類Dev

PHP DateTime diff関数が常にゼロを返すのはなぜですか?

分類Dev

dllimport関数が常にtrueを返すのはなぜですか?

分類Dev

getColor関数が常にfalseを返すのはなぜですか?

分類Dev

私のpdo変数が常に未定義なのはなぜですか?

Related 関連記事

  1. 1

    Javascript関数が未定義を返すのはなぜですか?

  2. 2

    関数が未定義を返すのはなぜですか?

  3. 3

    Javascript関数が作成時に「未定義」を返すのはなぜですか?

  4. 4

    このコードが常に未定義を返すのはなぜですか?

  5. 5

    myToken変数が常に未定義なのはなぜですか?

  6. 6

    この再帰関数が未定義を返すのはなぜですか?

  7. 7

    この非同期関数が未定義を返すのはなぜですか?

  8. 8

    この関数が未定義を返すのはなぜですか?

  9. 9

    このjavascript関数が未定義を返すのはなぜですか?

  10. 10

    小道具を使用するときに関数の引数が未定義を返すのはなぜですか?

  11. 11

    JavaScriptマップ関数が未定義を返すのはなぜですか?

  12. 12

    console.log関数が未定義を返すのはなぜですか?

  13. 13

    JavaScript関数呼び出しが未定義を返すのはなぜですか?

  14. 14

    再帰関数が未定義を返すのはなぜですか?

  15. 15

    JSマップ関数が未定義を返すのはなぜですか?

  16. 16

    再帰関数が「未定義」を返すのはなぜですか?

  17. 17

    引数を指定しているのに、関数が未定義を返すのはなぜですか

  18. 18

    変数tabledataが未定義を返すのはなぜですか?

  19. 19

    要素のcss関数に対してjQueryが未定義を返すのはなぜですか?

  20. 20

    関数が逆の文字列とともに未定義を返すのはなぜですか

  21. 21

    このandroid関数が常にfalseを返すのはなぜですか?

  22. 22

    この関数が常にゼロを返すのはなぜですか?

  23. 23

    JavaScript関数が常に値を返すのはなぜですか?

  24. 24

    isPasswordValid()関数が常にfalseを返すのはなぜですか?

  25. 25

    関数が常に同じ値を返すのはなぜですか?

  26. 26

    PHP DateTime diff関数が常にゼロを返すのはなぜですか?

  27. 27

    dllimport関数が常にtrueを返すのはなぜですか?

  28. 28

    getColor関数が常にfalseを返すのはなぜですか?

  29. 29

    私のpdo変数が常に未定義なのはなぜですか?

ホットタグ

アーカイブ