我正在嘗試查找數組中的最大項目。如何在TypeScript中調用數組reduce?
這是很簡單的使用直接,簡單,乾淨,優雅,快速的方法來解決 - 遍歷數組:
private GetMaxValue(data: Array<RealtimeDataPoint>): number {
if (data.length === 0)
return 0;
var maxValue = data[0].Value;
for (var i: number = 1; i < data.length; i++) {
if (data[i].Value > maxValue)
maxValue = data[i].Value;
}
return maxValue;
}
但是,這不是很酷
然後,而不是解決用最簡單的方式問題,我想嘗試使用.reduce
解決這個問題:
private GetMaxValue(data: Array<RealtimeDataPoint>): number {
var pt: RealtimeDataPoint = data.reduce(function (previousValue: RealtimeDataPoint, currentValue: RealtimeDataPoint, currentIndex: number, array: Array<RealtimeDataPoint>): RealtimeDataPoint {
if (currentValue.Value > previousValue.Value)
return currentValue;
else
return previousValue;
});
if (pt != null)
return pt.Value;
else
return 0;
}
,它的偉大,並將其編譯和所有。但它崩潰在運行時:
對象不支持此操作
這似乎表明,在var pt: RealtimeDataPoint = data.reduce(...)
線的東西是不行的,因爲這是其攤位上線:
而且它不是.reduce
成員,它不支持,因爲那裏。
於是,兩個問題:
- 什麼是錯我的語法?
- 爲什麼TypeScript沒有意識到我的語法有問題?
加成顫振
- 的Internet Explorer 11
- 鉻32
您正在使用哪種瀏覽器?你有沒有嘗試在另一個代碼中運行你的代碼? – nemesv