関数型プログラミング JavaScript リファクタリング

投稿者: | 2017年3月28日

ラムダ式で書いた関数をリファクタリングしていっている。下にいくほど文章量が少なくなることが分かる。

/**
 * Created by devel on 2017/03/28.
 */
var expect = require('expect.js');
var anArray = [2, 3, 4, 5, 7]

var sum1 = (array) =>{
    var result = 0
    for(var index=0; index<array.length; index++){
        result = result + array[index]
    }
    return result
}

console.log(sum1(anArray))

var sum2 = (array) =>{
    var result = 0
    array.forEach((item)=>{
        result = result + item
    })
    return result
}

console.log(sum2(anArray))

var sum3 = (array) =>{
    return array.reduce((x, y)=>{
        return x + y
        })
}

console.log(sum3(anArray))

expect(
    sum3(anArray)
).to.eql(
    21
)

一番下は単体テスト。

 

 

 

 

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA