需要在angular4中获得最小数量的数组

时间:2018-03-15 10:47:16

标签: angular typescript

我正在开展角度4应用。我正在尝试编写一个函数,它将从三个数组对象中获取最小数量和最大数量。这里yAxisData对象包含三个yaxis数组对象。我写的功能并没有写出数组集中的最小数字。我可以看到三个数组对象被传递给getMinY方法

export interface YAxisData {
    yaxis: number[];
}

yAxisData: Array < YAxisData >  = [];

ngOnInit() {
    this.addSeries();
    let minY = this.getMinY(this.yAxisData);

}

private addSeries() {
    this.results.forEach(element => {
        if (element.data != null)
            this.yAxisData.push({
                yaxis: element.yaxis
            });
    });
}

private getMinY(data: any[]) {
    return data.reduce((min, p) => p < min ? p : min, data);
}

1 个答案:

答案 0 :(得分:0)

试试这个:

let minY = Math.min(...this.yAxisData.map(el => Math.min(...el.yaxis)));

它做什么

  • 制作一个您想要比较的数字数组,由每个yaxis的最小值组成
  • 使用点差运算符
  • 展开数组
  • 获取该数组中的最小值。

工作片段:

&#13;
&#13;
yAxisData = [{ yaxis: [-50, 17] }, { yaxis: [34] }, { yaxis: [46] }, { yaxis: [0] }, { yaxis: [17] }];
let minY = Math.min(...yAxisData.map(el => Math.min(...el.yaxis)));
console.log(minY);
&#13;
&#13;
&#13;