JS配列オブジェクトはどうやってAray.reduceを使いますか?

4013 ワード

配列オブジェクトはどのようにreduceを使ってオブジェクトごとの属性を加算しますか?
需要:既存の配列オブジェクト、{dete:''2020-03-29 12:12'、count:12'、{date:''2020-03-28 13:12'、count:23}、すべての日数を求めるsum(count)使用技術:Aray.reduce()
/*
** reduce         ,    total,currentValue, index,arr
** total   。   ,            。
** currentValue   。    
** currentIndex   。       
** arr   。           。
*/
const dateArray = [
	{date:'2020-03-29 12:12', count: 12},
	{date: '2020-03-28 13:12', count: 23}
];
const numberPattern = /^[+-]?\d+(\.\d+)?$/;
const totalCount = dateArray .reduce((total, currentValue, currentIndex, arr) => {
                    const countMatched = numberPattern.exec(currentValue.count);  //                       ,      ,               
                    let count = 0; //      count  Number,     0
                    if (countMatched) {
                        count = parseFloat(countMatched[0]); //      match    (   )   Number  
                    }
                    return total + count;
                }, 0);
               
【後続】ここで注意したいのはパーrseFloatの使い方です.そのパラメータは数字で始まる文字列(もちろんNumberのタイプがいいです.)でなければパーサーフロトの結果はNaNです.たとえば、パーサーフロアー(''1233')やパースFloat('u 11')ではだめです.*これはいいです.0.11に戻ります.これもデータを処理する時に踏んだ穴に出会いました.皆さんに会わないでください.