我有一个这样的数组
var tideArray = new Array();
tideArray.push({tide:"haute1", difference: "-14"});
tideArray.push({tide:"haute2", difference: "-3"});
tideArray.push({tide:"basse1", difference: "-9"});
tideArray.push({tide:"basse2", difference: "4"});
tideArray.sortOn("difference", Array.NUMERIC);
trace(tideArray[0].tide);
现在,它选择的是最小的数字(-14),但我想选择最接近0的数字。
有没有办法做到这一点?
编辑
我试过了:
trace(closestToZero(tideArray));
function closestToZero(a:Array):int
{
var curDelta:int = Math.abs(0 - a[0].difference);
var curIndex:int = 0;
for(var i:int = 1; i < a.length; i++){
var thisDelta:int = Math.abs(0 - a[i].difference);
if(thisDelta < curDelta){
curIndex = i;
}
}
return curIndex;
}
但似乎某个地方有个错误,因为跟踪结果是错误的
3
(这意味着它在告诉我”
basse2
" (
4
)最接近0。。。但是,正如你所看到的,它是“
haute2
" (
-3
)最接近的)。