≪ Today I learned. RSS購読
公開日
タグ
JavaScript
著者
ダーシノ(@bc_rikko)

カンマ演算子を使ってパイプラインを実現する

カンマ演算子とは、演算対象を左から順に評価し最後の値を返す演算子のこと。

let x = 1
x = (x++, x)
console.log(x) // 2

パイプラインを実現する

const double = (x: number) => x * 2
const square = (x: number) => x ** 2
const power = (x: number, y: number) => x ** y

// 単一の値
const pipe1 = (val: number) => (
  val = double(val),
  val = square(val),
  val = power(val, 3)
)

// output: 4096
console.log(pipe1(2))

// 配列
const pipe2 = (val: number[]) => (
  val = val.map(double),
  val = val.map(square),
  val = val.map(x => power(x, 3)),
  val = val.filter(x => x % 10 >= 5)
)

// output: [4096, 46656] 
console.log(pipe2([1, 2, 3, 4, 5]))