条件に基づいて列集計を合計する

イルミネーチャー

特定の条件でタビュレーターの列値を合計し、このカスタム計算関数に従うことを試みています

私がこれまでに試したこと:

$(document).ready(function() {
  function getSum(total, num) {
    return total + num;
  }

  var adultCalc = function(values, data, calcParams) {
    var tempvalue = [];
    
    data.forEach(function(data) {
      var count = data.age * data.qty;
      tempvalue.push(count);
    });

    console.log('array', tempvalue);
    console.log('total', tempvalue.reduce(getSum));
    
    /*return tempvalue;*/
  }


  var tabledata = [{
      id: 1,
      name: "Oli Bob",
      age: "12",
      qty: "1",
      dob: ""
    },
    {
      id: 3,
      name: "Christine Lobowski",
      age: "42",
      qty: "1",
      dob: "22/05/1982"
    },
    {
      id: 4,
      name: "Brendon Philips",
      age: "35",
      qty: "2",
      dob: "01/08/1980"
    },
    {
      id: 5,
      name: "Margret Marmajuke",
      age: "16",
      qty: "0",
      dob: "31/01/1999"
    },
    {
      id: 5,
      name: "Marmajuke",
      age: "17",
      qty: "0",
      dob: "31/01/1999"
    },
    {
      id: 4,
      name: "Philips",
      age: "27",
      qty: "0",
      dob: "01/08/1980"
    }
  ];

  var table = new Tabulator("#example-table", {
    height: 205,
    data: tabledata,
    layout: "fitColumns",
    columns: [{
        title: "Name",
        field: "name",
        width: 150
      },
      {
        title: "Age",
        field: "age",
        bottomCalc: adultCalc
      },
      {
        title: "Qty",
        field: "qty"
      },
      {
        title: "Date Of Birth",
        field: "dob",
        sorter: "date",
        align: "center"
      }
    ]
  });

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://unpkg.com/[email protected]/dist/css/tabulator.min.css" rel="stylesheet">
<script type="text/javascript" src="https://unpkg.com/[email protected]/dist/js/tabulator.min.js"></script>

<div id="example-table"></div>

私の公式は次のとおりage * qtyです。配列にプッシュして合計します。

必要な値を取得して配列にプッシュすることに成功しましたが、問題は、配列reduce関数を使用して配列を合計できないことです

このエラーが発生しました

TypeError:初期値のない空の配列の削減

配列の合計を取得するだけの私の問題。

誰かが私のコードの何が問題なのか教えてもらえますか?

ありがとう。

コードを書くだけ

減らすために初期値を提供する必要があります

console.log('total', tempvalue.reduce(getSum,0));

初めてreduceを使用すると、配列が空になり、reduceでエラーが発生します。初期値を渡すことができ、期待どおりに機能するはずです。

注:initialValueが指定されていない場合、reduce()は、最初のインデックスをスキップして、インデックス1からコールバック関数を実行します。initialValueが指定されている場合、インデックス0から始まります。

$(document).ready(function() {
  function getSum(total, num) {
    return total + num;
  }

  var adultCalc = function(values, data, calcParams) {
    var tempvalue = [];
    
    data.forEach(function(data) {
      var count = data.age * data.qty;
      tempvalue.push(count);
    });

    console.log('array', tempvalue);
    console.log('total', tempvalue.reduce(getSum,0));
    
    /*return tempvalue;*/
  }


  var tabledata = [{
      id: 1,
      name: "Oli Bob",
      age: "12",
      qty: "1",
      dob: ""
    },
    {
      id: 3,
      name: "Christine Lobowski",
      age: "42",
      qty: "1",
      dob: "22/05/1982"
    },
    {
      id: 4,
      name: "Brendon Philips",
      age: "35",
      qty: "2",
      dob: "01/08/1980"
    },
    {
      id: 5,
      name: "Margret Marmajuke",
      age: "16",
      qty: "0",
      dob: "31/01/1999"
    },
    {
      id: 5,
      name: "Marmajuke",
      age: "17",
      qty: "0",
      dob: "31/01/1999"
    },
    {
      id: 4,
      name: "Philips",
      age: "27",
      qty: "0",
      dob: "01/08/1980"
    }
  ];

  var table = new Tabulator("#example-table", {
    height: 205,
    data: tabledata,
    layout: "fitColumns",
    columns: [{
        title: "Name",
        field: "name",
        width: 150
      },
      {
        title: "Age",
        field: "age",
        bottomCalc: adultCalc
      },
      {
        title: "Qty",
        field: "qty"
      },
      {
        title: "Date Of Birth",
        field: "dob",
        sorter: "date",
        align: "center"
      }
    ]
  });

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://unpkg.com/[email protected]/dist/css/tabulator.min.css" rel="stylesheet">
<script type="text/javascript" src="https://unpkg.com/[email protected]/dist/js/tabulator.min.js"></script>

<div id="example-table"></div>

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

条件に基づいて列を合計する

分類Dev

条件に基づいて列の合計を取得する

分類Dev

別の列に基づいて条件付きで列を集計する方法

分類Dev

条件に基づいて2つの列を分離して合計する方法

分類Dev

Excel:条件に基づいて列を合計します

分類Dev

R:ある条件に基づいて変数を合計する

分類Dev

MicrosoftExcel-2つの異なる列に基づいて列の合計を条件として計算する方法

分類Dev

代替列の基準に基づいて値を合計する

分類Dev

基準に基づいて列を合計する

分類Dev

条件に基づいて合計行を作成する

分類Dev

条件に基づいて変更で合計を使用する

分類Dev

R: 複数の条件に基づいて行を合計する

分類Dev

列に基づいて数値を集計する

分類Dev

TSQL他の列に基づいて値を集計する

分類Dev

別の列に基づいて列を合計する

分類Dev

PandasDataFrameの別の列に基づいて列を合計する

分類Dev

列の合計に基づいて列を印刷するAWK

分類Dev

複数の条件に基づいて列を計算する

分類Dev

SQL:集計値に基づいて条件付きで列を選択します

分類Dev

さまざまな条件に基づいて列を集計しますか?

分類Dev

別の列に基づいて1つの列の合計を計算する

分類Dev

別の列に基づいて列の間隔の合計を計算する

分類Dev

ヘッダーに基づいて列を合計する

分類Dev

さまざまな条件に基づいて集計する方法

分類Dev

pysparkの条件に基づいて値を集計します

分類Dev

時間列に基づいて値の合計年齢を計算する

分類Dev

対応する列値の集計に基づいて条件付きでNAを入力します

分類Dev

条件に基づいてデータフレームから列をクロス集計する方法は?

分類Dev

条件に基づいてlinqを使用してdatatableの値を合計する

Related 関連記事

  1. 1

    条件に基づいて列を合計する

  2. 2

    条件に基づいて列の合計を取得する

  3. 3

    別の列に基づいて条件付きで列を集計する方法

  4. 4

    条件に基づいて2つの列を分離して合計する方法

  5. 5

    Excel:条件に基づいて列を合計します

  6. 6

    R:ある条件に基づいて変数を合計する

  7. 7

    MicrosoftExcel-2つの異なる列に基づいて列の合計を条件として計算する方法

  8. 8

    代替列の基準に基づいて値を合計する

  9. 9

    基準に基づいて列を合計する

  10. 10

    条件に基づいて合計行を作成する

  11. 11

    条件に基づいて変更で合計を使用する

  12. 12

    R: 複数の条件に基づいて行を合計する

  13. 13

    列に基づいて数値を集計する

  14. 14

    TSQL他の列に基づいて値を集計する

  15. 15

    別の列に基づいて列を合計する

  16. 16

    PandasDataFrameの別の列に基づいて列を合計する

  17. 17

    列の合計に基づいて列を印刷するAWK

  18. 18

    複数の条件に基づいて列を計算する

  19. 19

    SQL:集計値に基づいて条件付きで列を選択します

  20. 20

    さまざまな条件に基づいて列を集計しますか?

  21. 21

    別の列に基づいて1つの列の合計を計算する

  22. 22

    別の列に基づいて列の間隔の合計を計算する

  23. 23

    ヘッダーに基づいて列を合計する

  24. 24

    さまざまな条件に基づいて集計する方法

  25. 25

    pysparkの条件に基づいて値を集計します

  26. 26

    時間列に基づいて値の合計年齢を計算する

  27. 27

    対応する列値の集計に基づいて条件付きでNAを入力します

  28. 28

    条件に基づいてデータフレームから列をクロス集計する方法は?

  29. 29

    条件に基づいてlinqを使用してdatatableの値を合計する

ホットタグ

アーカイブ