// 3.7.js // 2024-09-03 // $Id: 3.7.js 1.1 2024/10/31 12:14:40 s Exp $ 'use strict' // funsction const sum = (x, y) => x + y; // Flanagan, p.203. // input const r = 0.1; const cfs_a = [-20000, -1000, -1000, -1000]; const i_a = [ 0, 1, 2, 3]; const cfs_b = [-30000, -2000, -2000, -2000, -2000, -2000]; const i_b = [ 0, 1, 2, 3, 4, 5]; // calculation const pv_a = i_a.map((_, i) => cfs_a[i] / (1 + r) ** i_a[i]).reduce(sum); const pv_b = i_b.map((_, i) => cfs_b[i] / (1 + r) ** i_b[i]).reduce(sum); const n_a = i_a.length; const n_b = i_b.length; const a_a = r * (1 + r) ** n_a * -pv_a / ((1 + r) ** n_a - 1); const a_b = r * (1 + r) ** n_b * -pv_b / ((1 + r) ** n_b - 1); // output console.log("3.7.js"); console.log("pv_a", Math.round(pv_a).toFixed(0).padStart(10), " ($)"); console.log("A_a ", Math.round(a_a ).toFixed(0).padStart(10), " ($)"); console.log("pv_b", Math.round(pv_b).toFixed(0).padStart(10), " ($)"); console.log("A_b ", Math.round(a_b ).toFixed(0).padStart(10), " ($)"); console.log() // end // reference // David Flanagan著 『JavaScript 第7版』(オライリー・ジャパン) 2022-09-13. // ** : p.80. // => : p.202. // console.log() : p.630. // const : p.57. // length : p.176. // let : p.57. // map() : p.182. // reduce() : p.184. // use strict : p.134. // end reference