【发布时间】:2017-12-04 06:43:02
【问题描述】:
我需要在 javascript 对象中提取最接近的较低值和最接近的较高值。 我的逻辑是迭代对象并将所有低于我产品价值的值放入一个变量中(然后对最接近的较高值和所有优越值执行相同操作)
我要在该示例中提取的值是作为这样构造的对象的第一个值的日期:"object":[[val1, val2],[val1, val2]]
你认为我的逻辑是好的,你能看出我的代码有什么问题吗?
var datagrph = $.parseJSON('{"label":"Yo", "fromDate":"2015-06-05", "launchDate":"2016-08-15", "dateValues":[["2014-06-05",1723.76], ["2015-06-29",1523.76], ["2015-12-29",1023.76], ["2017-01-29",523.76], ["2017-02-22",1523.76], ["2017-03-29",523.76], ["2017-04-29",1523.76], ["2017-05-29",23.76], ["2017-06-21",523.76] ]}');
var productCour = datagrph.dateValues;
var launchDate = datagrph.launchDate;
var val1 = [0];
Object.keys(productCour).map(function(objectDate, index) {
var value = object[objectDate];
if (value <= launchDate) {
val1.push(value);
} else if (value > launchDate) {
value++;
}
return val1;
});
alert(val1);
【问题讨论】:
-
value 仍然是一个数组...我不明白:你想要的输出是什么??
-
更好的方法是计算每个值的差值,然后返回与当前值差值最小的值
-
@Jonasw 对我来说价值是特定的 val1(日期),我错了吗?我想要的输出是 val1 对应每个小于 objectDate 的值。
-
@katchou 如果对象 woupdnt 未定义,它将是一个数组。所以你想找到与launchDate最近的日期对应的值吗?
-
@abhishekkannojia 你的意思是这样的吗? stackoverflow.com/questions/8584902/…
标签: javascript arrays array.prototype.map