メソッド内で呼び出されるオブジェクトを作成して呼び出す方法

LetsamrIt

以下のコードでは、すべてのディレクトリと拡張子が「js」のファイルを繰り返し処理して、「files_」配列に追加します。私もやりたいのは、「files_.push」が呼び出されるたびに更新されるオブジェクトまたはメソッド「accumulateData」を作成することです。そのため、反復ごとに、その「files_.push」が呼び出され、「accumulateData」には「files_.push」の最近/更新された定数とtotalsizeが含まれます。

さらに、以下のメソッドが「accumulateData」を返すようにしたいので、メソッド「getFiles」が反復を終了した後、次のようなものを呼び出すことができます。

console.log(accumulateData.totalSize)

それを達成する方法を教えてください

コード

function getFiles(dir, files_) {
    files_ = files_ || [];
    var files = fs.readdirSync(dir);

    for (var i in files) {
        var name = dir + '/' + files[i];
        if (fs.statSync(name).isDirectory()) {
            getFiles(name, files_);
        } else if (name.endsWith('js')) {
            //totalSize += fs.statSync(name).size;
            files_.push({ name: name, size: fs.statSync(name).size }); 
           /*accumulateData(files, totalSize)
           {
               files = files;
               totoalSize = totalSize;
           }*/
       }
    }
    return files_;
    //return accumulateData
}

私の試み

let totalSize = 0;
let accumulatedData;
function getFiles(dir, files_) {
  files_ = files_ || [];
  const files = fs.readdirSync(dir);

  for (const i in files) {
    const name = dir + '/' + files[i];
    if (fs.statSync(name).isDirectory()) {
      getFiles(name, files_);
    } else if (name.endsWith('js')) {
      // files_.push(name);

      totalSize += fs.statSync(name).size;
      files_.push({ name: name, size: fs.statSync(name).size });
      // data(files, totalSize);

      accumulatedData = {
        files: files,
        totalSize: totalSize
      };
    }
  }
  return accumulatedData;
}

console.log(getFiles('/home/bakria/Projects/smartvehicle').totalSize);
イブラヒムマハリール

ファイルの配列と合計サイズの両方を含むオブジェクトを使用できます。

function getFiles(dir, obj) {
    obj = obj || { files: [], totalSize: 0 };                    // if no object is provided then initialize obj with an object that contains an empty array for files and 0 for totalSize
    var files = fs.readdirSync(dir);
    for(var i = 0; i < files.length; i++) {
        var name = dir + '/' + files[i];
        var stat = fs.statSync(name);                            // to minimize the calls to fs.statSync
        if (stat.isDirectory()) {
            getFiles(name, obj);                                 // pass obj to getFile (recursion)
        } else if (name.endsWith('js')) {
            obj.totalSize += stat.size;                          // add this file's size to obj.totalSize
            obj.files.push({ name: name, size: stat.size });     // push this file's object into obj.files
       }
    }
    return obj;                                                  // return obj
}

リターンは次のようになります。

var result = getFiles("some/dir");

ここresultで:

{
    files: [/* an array of files */],
    totalSize: /* total size of the files */
}

したがってresult.files、ファイルの配列にresult.totalSizeなり、合計サイズになります。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

TypeError: 'classname'オブジェクトを呼び出すことはできません(tkinter.Button.commandを介して呼び出されるメソッド内)

分類Dev

Mockito:メソッド内で作成されたオブジェクトでメソッドが呼び出されたことを確認する方法は?

分類Dev

サブルーチンがオブジェクト呼び出しメソッドで呼び出されたかどうかを確認する方法

分類Dev

作成されたすべてのオブジェクトでメソッドを呼び出す

分類Dev

静的ファクトリメソッドは、呼び出されるたびに新しいオブジェクトを作成しています

分類Dev

静的ファクトリメソッドは、呼び出されるたびに新しいオブジェクトを作成しています

分類Dev

Mockito-オブジェクトのメソッド内の静的メソッドが呼び出されていることを確認します

分類Dev

Mockito-オブジェクトのメソッド内の静的メソッドが呼び出されていることを確認します

分類Dev

呼び出されたメソッドの名前を返すRubyオブジェクトを作成します

分類Dev

関数内で作成されたオブジェクトからのメソッド呼び出しをモックします(python)

分類Dev

Java:なぜ別のメソッド内で呼び出されたメソッドがJavaの現在の呼び出しオブジェクトで自動的に呼び出されるのですか?

分類Dev

C ++のSwitchCaseで作成された後、オブジェクトのメソッドを呼び出す

分類Dev

Pythonで作成するときに、オブジェクトのメソッドを呼び出す方法は?

分類Dev

ラップされたオブジェクトのメソッドをunique_ptrで呼び出す方法は?

分類Dev

R:オブジェクトで呼び出されるS3メソッドを見つける方法は?

分類Dev

actionPerformedで呼び出されたメソッドにオブジェクト引数を渡す方法は?

分類Dev

actionPerformedで呼び出されたメソッドにオブジェクト引数を渡す方法は?

分類Dev

期待されるオブジェクトでメソッドが呼び出されているかどうかを確認する方法

分類Dev

Pythonでメソッドが呼び出されたオブジェクトを取得します

分類Dev

関数が単独で呼び出された場合、オブジェクトのメソッドは関数内で呼び出すことができますが、関数がsetTimeoutを介して呼び出された場合、オブジェクトは未定義です。

分類Dev

Pythonモック-モックオブジェクトでメソッドが呼び出されているかどうかを確認します

分類Dev

FakeItEasyは、メソッドが呼び出されるオブジェクトを返します

分類Dev

InOrderを使用して、変更されるListオブジェクトでメソッド呼び出しを検証する

分類Dev

静的クラス メソッドは、クラスの外部で呼び出されるとオブジェクトを返しますが、異なるクラスの内部で呼び出されると空のオブジェクトを返します。

分類Dev

Kafka Send()メソッドのOnfailure()メソッド呼び出しでオブジェクト値を取得する

分類Dev

JUnitテストでメソッドのメソッドパラメータとして渡されるオブジェクトのメソッド呼び出しをモックする方法

分類Dev

dlopenを使用して共有オブジェクトのランタイムをロードすることによって作成されたオブジェクトのメソッドを呼び出す方法

分類Dev

Moqを使用して呼び出されていることを確認するMockオブジェクトのメソッドをセットアップするための呼び出しが必要ですか?

分類Dev

オブジェクトのメソッドを呼び出す

Related 関連記事

  1. 1

    TypeError: 'classname'オブジェクトを呼び出すことはできません(tkinter.Button.commandを介して呼び出されるメソッド内)

  2. 2

    Mockito:メソッド内で作成されたオブジェクトでメソッドが呼び出されたことを確認する方法は?

  3. 3

    サブルーチンがオブジェクト呼び出しメソッドで呼び出されたかどうかを確認する方法

  4. 4

    作成されたすべてのオブジェクトでメソッドを呼び出す

  5. 5

    静的ファクトリメソッドは、呼び出されるたびに新しいオブジェクトを作成しています

  6. 6

    静的ファクトリメソッドは、呼び出されるたびに新しいオブジェクトを作成しています

  7. 7

    Mockito-オブジェクトのメソッド内の静的メソッドが呼び出されていることを確認します

  8. 8

    Mockito-オブジェクトのメソッド内の静的メソッドが呼び出されていることを確認します

  9. 9

    呼び出されたメソッドの名前を返すRubyオブジェクトを作成します

  10. 10

    関数内で作成されたオブジェクトからのメソッド呼び出しをモックします(python)

  11. 11

    Java:なぜ別のメソッド内で呼び出されたメソッドがJavaの現在の呼び出しオブジェクトで自動的に呼び出されるのですか?

  12. 12

    C ++のSwitchCaseで作成された後、オブジェクトのメソッドを呼び出す

  13. 13

    Pythonで作成するときに、オブジェクトのメソッドを呼び出す方法は?

  14. 14

    ラップされたオブジェクトのメソッドをunique_ptrで呼び出す方法は?

  15. 15

    R:オブジェクトで呼び出されるS3メソッドを見つける方法は?

  16. 16

    actionPerformedで呼び出されたメソッドにオブジェクト引数を渡す方法は?

  17. 17

    actionPerformedで呼び出されたメソッドにオブジェクト引数を渡す方法は?

  18. 18

    期待されるオブジェクトでメソッドが呼び出されているかどうかを確認する方法

  19. 19

    Pythonでメソッドが呼び出されたオブジェクトを取得します

  20. 20

    関数が単独で呼び出された場合、オブジェクトのメソッドは関数内で呼び出すことができますが、関数がsetTimeoutを介して呼び出された場合、オブジェクトは未定義です。

  21. 21

    Pythonモック-モックオブジェクトでメソッドが呼び出されているかどうかを確認します

  22. 22

    FakeItEasyは、メソッドが呼び出されるオブジェクトを返します

  23. 23

    InOrderを使用して、変更されるListオブジェクトでメソッド呼び出しを検証する

  24. 24

    静的クラス メソッドは、クラスの外部で呼び出されるとオブジェクトを返しますが、異なるクラスの内部で呼び出されると空のオブジェクトを返します。

  25. 25

    Kafka Send()メソッドのOnfailure()メソッド呼び出しでオブジェクト値を取得する

  26. 26

    JUnitテストでメソッドのメソッドパラメータとして渡されるオブジェクトのメソッド呼び出しをモックする方法

  27. 27

    dlopenを使用して共有オブジェクトのランタイムをロードすることによって作成されたオブジェクトのメソッドを呼び出す方法

  28. 28

    Moqを使用して呼び出されていることを確認するMockオブジェクトのメソッドをセットアップするための呼び出しが必要ですか?

  29. 29

    オブジェクトのメソッドを呼び出す

ホットタグ

アーカイブ