如何查找数字序列中的最低和最高值对?我想保存折线图的低/高值。查找序列中下一个最高和最低的数字
你能帮我用一张伪代码,使人们可以实现自己喜爱的前卫语言的答案。
我将使用它来生成一个D3.js的线图。如果有人知道如何用D3做到这一点,我会非常乐意了解它。
数据样本: [,10,11,,15%,,10,,15,17,,15,]
Desired Result:
array[0][high] = 20
array[0][low] = 5
array[1][high] = 25
array[1][low] = 5
array[2][high] = 26
array[2][low] = 7
这就是我到目前为止(使用Javascript)。你们是否看到我们可以优化这段代码?
// data sample
var data_sample = Array(5, 15, 20, 15, 6, 11, 21, 14, 9, 4, 15, 20, 15, 1, 10, 20, 4);
// algo
var low = high = k = 0;
var log = [];
for (var i = 0; i < data_sample.length; i++) {
var current = data_sample[i];
var m = i+1;
var next = data_sample[m];
if (typeof next == 'undefined') {
break;
}
if (current < next) {
if (low === 0) {
low = current;
} else if (current < low) {
low = current;
}
} else if (current > next && low !== 0) {
if (high === 0) {
high = current;
} else if (current > high) {
high = current;
}
}
if (low > 0 && high > 0){
log[k] = [];
log[k]['low'] = low;
log[k]['high'] = high;
k++
low = high = 0;
}
};
预先感谢您
是你数组初始化一样,或者它只是一个错字?这不是多维的。 – andrex 2014-09-25 06:55:37
它是一个二维数组。这只是为了说明结果数组将包含0维中序列的第一个高/低数字和第一个dim中的第二个低/高数值,依此类推。 – ndalpe 2014-09-25 07:20:41
我发布了一个答案,但删除了它,因为它依赖于选择3个结果,是由你来选择? – elclanrs 2014-09-25 07:29:59