我有一个名为sales的数组,如下所示。
我有一个计算金额标准差(帖子底部)的函数。
我正在尝试使用slice函数,但是有一些问题。我想从第10行到第50行的Sales数组中切出一部分,并将其传递给我的标准差函数。
Sales : Array(500)
0: {DateSale: "2018-01-01T00:00:00", Currency: "USD", Amount: 325}
1: {DateSale: "2018-01-02T00:00:00", Currency: "USD", Amount: 6832}
...
下面的行不起作用
standardDevation(Sales.Amount.slice(10,50));
错误消息,
未捕获的TypeError:无法读取未定义的属性“切片”
以下行的工作方式是应用了slice函数。但是我的standardDevation函数返回NaN。我知道我可以将值更改为values.Amount,但我想知道是否有可能仅对Sales数组的Amount字段进行切片吗?因为如果我要计算另一个数组的标准偏差,并且它没有字段Amount,我认为它将不起作用?
standardDevation(Sales.slice(10,50));
function standardDeviation(values) {
var avg = average(values);
var squareDiffs = values.map(function (value) {
var diff = value - avg;
var sqrDiff = diff * diff;
return sqrDiff;
});
var avgSquareDiff = average(squareDiffs);
var stdDev = Math.sqrt(avgSquareDiff);
return stdDev;
}
答案 0 :(得分:2)
您要获取Sales数组的一部分,然后映射输出以获取要传递给函数的数字数组:
standardDevation(Sales.slice(10,50).map(s => s.Amount));