【JSリファレンス】Uint8Array.prototype.reduce()

更新日:2024/06/14

Uint8Array.prototype.reduce()は、Uint8Arrayオブジェクト(Uint8Arrayコンストラクターのインスタンス)プロトタイプチェーンに組み込まれるメソッドです。

このメソッドは、Uint8Arrayオブジェクトの全要素を使用して何らかの結果を得ることを目的としたツールメソッドです。

 

■構文

Uint8Array.prototype.reduce ( callbackfn [ , initialValue ] )
  1. callbackfn: 各要素毎に呼び出される関数

    要素数が1で initialValue が省略された場合、呼び出されない

  2. initialValue: 省略可能。

    callbackfn の初回呼び出しで第一引数に渡される値

・最後の callbackfn 呼び出しで返ってきた値。
・要素数が1で initialValue が省略された場合、その要素の値。

※要素数が0の場合、TypeError例外が発生します。

 

■callbackfnの構文

callbackfn ( previousValue , currentValue , currentIndex , array ){ }
  1. previousValue:
    初回はinitialValue
    initialValue が省略されている場合は、元となるUint8Arrayオブジェクトの最初の要素。

    2回目以降は、前回の callbackfn 呼び出しの戻り値。

  2. currentValue: 要素の値

    initialValue 省略時の初回呼び出しは、元となるUint8Arrayオブジェクトの2番目の要素。

  3. currentIndex: currentValueのインデックス
  4. array: 対象となっているUint8Arrayオブジェクト
次回の previousValue

 

■使用例

▶合計を求める

const typedArray = new Uint8Array([1,2,3]);
const result = typedArray.reduce(  
          (pre,value) =>pre+value , 0 );

console.log( result ); // 6

▶偶数値と奇数値の合計をそれぞれ求める

const typedArray = new Uint8Array([1,2,3,4,5]);
const {even:evenSum,odd:oddSum} = typedArray.reduce(  
          (pre,value) =>{
    const propName = value % 2 === 0 
            ? "even" : "odd";
    pre[propName] += value;
    return pre;
  }
  ,{ even:0 , odd:0 });
console.log( `偶数計:${evenSum}`); // 偶数計:6
console.log( `奇数計:${oddSum}`);  // 奇数計:9

更新日:2024/06/14

書いた人(管理人):けーちゃん

スポンサーリンク

記事の内容について

null

こんにちはけーちゃんです。
説明するのって難しいですね。

「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。

裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。

掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。

ご意見、ご指摘はこちら。
https://jsref.affi-sapo-sv.com/info.php

 

このサイトは、リンクフリーです。大歓迎です。