我有一个数字数组 [350000,350000,350000]
我有以下代码:
function getNPV(rate, periods, Cashflow) {
var npv = 0;
for (var i = 0; i < Cashflow.length; i++) {
npv += Cashflow[i] / Math.pow(1 + rate, periods);
}
return npv;
}
在这里,现金流量是我们的数组,利率= 6%,期限= 91天。
当我服用时:
npv = Cashflow[i] / Math.pow(1 + rate, periods);
每次对350000施加6%的折扣率时,输出为[348328,346664,344952]。
我正在尝试提取[348328,346664,344952]的总和,即$1,039,944
但是,结果是给了我$1034856
。
尝试使用控制台,实际上是将3rd值的总和取3次。 [344952 + 344952 + 344952]由于某种原因。
有人可以告诉我如何解决此错误。任何帮助表示赞赏。谢谢。
答案 0 :(得分:0)
我指的是您的电子表格,您需要一个用于期间而不是现金流量的数组。
通过期和现金流量,例如:
var periods = [30, 60, 91];
var cashflow = 350000;
getNPV(rate, periods, cashflow);
您的现金流是相同的,因此不需要数组(如果要改变现金流,您可能仍然有数组)
并在循环中使用它:
function getNPV(rate, periods, Cashflow) {
var npv = rate;
for (var i = 0; i < periods.length; i++) {
npv += Cashflow / Math.pow(1 + rate, periods[i]);
}
return npv;
}
答案 1 :(得分:0)
您可以使用returnSum来获取数组的总和
function returnSum(arr) {
function sum(a, b) {
return a + b;
}
return arr.reduce(sum, 0);
}
let array = [348328,346664,344952]
returnSum(array); //result 1039944