JavaScript関数から報告された不正確な平均

Null isTrue

average()2つの値の平均を計算する方法があります。平均は、10進値の「髪の毛」によって外れています。

const measurements = [ 
  { timestamp: '2015-09-01T16:00:00.000Z',
    temperature: 27.1,
    dewPoint: 16.9 
  },
  { timestamp: '2015-09-01T16:10:00.000Z',
    temperature: 27.3,
    dewPoint: 0 
  },
  { timestamp: '2015-09-01T16:20:00.000Z',
    temperature: 27.5,
    dewPoint: 17.1 
   },
   { timestamp: '2015-09-01T16:30:00.000Z',
    temperature: 27.4,
    dewPoint: 17.3 
   },
   { timestamp: '2015-09-01T16:40:00.000Z',
    temperature: 27.2,
    dewPoint: 0 
   },
   { timestamp: '2015-09-01T17:00:00.000Z',
    temperature: 28.1,
    dewPoint: 18.3 
   } 
] 

簡潔にするために、ここでは60行のコードを共有しません。

仮定:

  • query()特定のタイムスタンプとの間の範囲を取得するメソッドがあります私の例で 2015-09-01T16:00:00.000Z から 2015-09-01T17:00:00.000Z

  • 別の方法は、オブジェクトをループして出力最小最大指定値とメトリック私のメトリックは、露点最小最大上記配列の値は16.918.3それぞれ。

  • 最後の間の平均取得する方法(下記参照)を最小最大値を

したがって、これは上記の説明の結果です。


// POSTMAN result

[
    {
        "metric": "dewPoint",
        "stat": "min",
        "value": 16.9
    },
    {
        "metric": "dewPoint",
        "stat": "max",
        "value": 18.3
    },
    {
        "metric": "dewPoint",
        "stat": "average",
        "value": 17.4
    }
]

最大値と最小値の平均を取得したい。つまり、16.918.317.6あるはずですが、代わり17.4取得しています

これが実際のバグがある1つの方法です。

function averageMetric(measurements, metric) {

  // => metric dewPoint
  // => measurements = the data array in example

  let value = 0
  let measurementsWithMetric = 0
  measurements.forEach(measurement => {
    if (measurement[metric]) {
      value += measurement[metric]
      measurementsWithMetric++
    }
  })
  //=> value = 69.6
  //=> measurementsWithMetric = 4
  const average = value / measurementsWithMetric // Is this the issue?
  // average =  17.4

  return isNaN(average) ? null : Math.round(average * 100) / 100
}

ここで問題を理解するのを手伝ってくれませんか?また、上記の方法のES6と同等の解決策を提案できますか?

ᆼᆺᆼ

関数は、ミッドレンジではなく算術平均を計算しますこれを計算する関数は次のとおりです。

const measurements = [ 
  {temperature: 27.1, dewPoint: 16.9},
  {temperature: 27.3, dewPoint: 0}, // Isn't this the minimum value though?
  {temperature: 27.5, dewPoint: 17.1},
  {temperature: 27.4, dewPoint: 17.3},
  {temperature: 27.2, dewPoint: 0},
  {temperature: 28.1, dewPoint: 18.3}, 
  {temperature: 28.2} 
];
function averageMetric(meas, metr) {
  const valid = meas.filter(e => e[metr]);
  const min = Math.min(...valid.map(e => e[metr]));
  const max = Math.max(...valid.map(e => e[metr]));
  return (min + max) / 2;
}

console.log(averageMetric(measurements, 'dewPoint'));

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

TestNGの単体テストで、mokitoスタブ関数を使用するとnullPointerExceptionが常に報告され、解決策が見つからなかった

分類Dev

IDEから報告された不要なボクシング検査

分類Dev

2つの異なるmutexから報告されたデータ競合

分類Dev

非同期呼び出しから報告された進行状況の確認は、単体テストで適切に報告されます

分類Dev

関数から返される間違った情報

分類Dev

Javascript配列が別の関数内で機能しない(エラーは報告されていません)

分類Dev

リンカがグローバル関数に対して複数定義されたシンボルを報告するのに、クラス静的メソッドを報告しないのはなぜですか

分類Dev

Rhino Mockを使用して、呼び出された関数を報告します

分類Dev

inspect()を使用して報告されたLavaanの信じられない行列

分類Dev

Cから渡された関数ポインタがNULLでないかどうかを確認する方法

分類Dev

報告された一様変数が見つかりませんLWJGL3

分類Dev

value_counts()関数から返された情報を保存する方法

分類Dev

Javascriptから追加されたonclick関数で引数を渡す

分類Dev

PHPUnitコードカバレッジが呼び出されない関数を報告しないのはなぜですか?

分類Dev

入力クラス名によって参照されるJavaScriptを使用した入力フィールドからの値の不正確な取得

分類Dev

JavaScriptのネストされた関数からの戻り値

分類Dev

ネストされた関数からの戻り値-JavaScript

分類Dev

phpから呼び出されないJavascript関数

分類Dev

JqueryDatatables行からトリガーされないJavascript関数

分類Dev

gdbを使用して「catch」を追跡しましたが「syscall」が失敗しました。「brk」が見つからないと報告されますか?

分類Dev

Javascript関数に渡された情報の取得

分類Dev

JavaScriptの再帰関数から関数が呼び出されない

分類Dev

関数内で定義された変数から情報を取得する方法はありますか?

分類Dev

Core Foundation:LLVMアナライザーが、呼び出し元が* Create *関数で作成されたオブジェクトを所有していないと報告するのはなぜですか?

分類Dev

私のOSは3.8GBのキャッシュを報告しており、CPU-Zから報告されたものよりはるかに多い

分類Dev

列から選択された数値の数の平均

分類Dev

GCCが初期化されていない変数を報告しないのはなぜですか?

分類Dev

!dumpheapと!strings-報告された文字列のエントリ数と長さが異なります

分類Dev

Repast:不明なエラーが報告されました

Related 関連記事

  1. 1

    TestNGの単体テストで、mokitoスタブ関数を使用するとnullPointerExceptionが常に報告され、解決策が見つからなかった

  2. 2

    IDEから報告された不要なボクシング検査

  3. 3

    2つの異なるmutexから報告されたデータ競合

  4. 4

    非同期呼び出しから報告された進行状況の確認は、単体テストで適切に報告されます

  5. 5

    関数から返される間違った情報

  6. 6

    Javascript配列が別の関数内で機能しない(エラーは報告されていません)

  7. 7

    リンカがグローバル関数に対して複数定義されたシンボルを報告するのに、クラス静的メソッドを報告しないのはなぜですか

  8. 8

    Rhino Mockを使用して、呼び出された関数を報告します

  9. 9

    inspect()を使用して報告されたLavaanの信じられない行列

  10. 10

    Cから渡された関数ポインタがNULLでないかどうかを確認する方法

  11. 11

    報告された一様変数が見つかりませんLWJGL3

  12. 12

    value_counts()関数から返された情報を保存する方法

  13. 13

    Javascriptから追加されたonclick関数で引数を渡す

  14. 14

    PHPUnitコードカバレッジが呼び出されない関数を報告しないのはなぜですか?

  15. 15

    入力クラス名によって参照されるJavaScriptを使用した入力フィールドからの値の不正確な取得

  16. 16

    JavaScriptのネストされた関数からの戻り値

  17. 17

    ネストされた関数からの戻り値-JavaScript

  18. 18

    phpから呼び出されないJavascript関数

  19. 19

    JqueryDatatables行からトリガーされないJavascript関数

  20. 20

    gdbを使用して「catch」を追跡しましたが「syscall」が失敗しました。「brk」が見つからないと報告されますか?

  21. 21

    Javascript関数に渡された情報の取得

  22. 22

    JavaScriptの再帰関数から関数が呼び出されない

  23. 23

    関数内で定義された変数から情報を取得する方法はありますか?

  24. 24

    Core Foundation:LLVMアナライザーが、呼び出し元が* Create *関数で作成されたオブジェクトを所有していないと報告するのはなぜですか?

  25. 25

    私のOSは3.8GBのキャッシュを報告しており、CPU-Zから報告されたものよりはるかに多い

  26. 26

    列から選択された数値の数の平均

  27. 27

    GCCが初期化されていない変数を報告しないのはなぜですか?

  28. 28

    !dumpheapと!strings-報告された文字列のエントリ数と長さが異なります

  29. 29

    Repast:不明なエラーが報告されました

ホットタグ

アーカイブ