如何在数组中找到对象的索引号

how do I find an object's index number in an array

我有这段代码在我的数组中寻找最接近 0 的数字:

var tideArray = new Array();  
tideArray.push({tide:"haute", difference: "-14"});  
tideArray.push({tide:"haute", difference: "3"});  
tideArray.push({tide:"basse", difference: "-4"});  
tideArray.push({tide:"basse", difference: "8"});  

if (tideArray.length > 0)  
{  
    var minItem: Object = tideArray[0];  
    for (var index:int = 1; index < tideArray.length; index++)  
    {  
        if (Math.abs(tideArray[index].difference) < Math.abs(minItem.difference))  
        {  
            minItem = tideArray[index];  
        }  
    }  
}  

trace(minItem.difference) // OUTPUT is 3 in this case 

有没有办法在我的 tideArray 中找到 minItem.difference 的索引? (所以,这里的结果应该是 index = 1 )

我试过 tideArray.indexOf(minItem.difference) 但输出是 -1,所以找不到索引...

我要查找索引号,而不是 "difference" 或 "tide" 的值。

尝试使用地图,例如:

tideArray.map(function (cv) { return cv.difference }).indexOf("-14")

一个非常简单的方法是使用现有循环记录索引:

if (tideArray.length > 0)  
{  
    var mindex: int = NaN;
    var minItem: Object = tideArray[0];  
    for (var index:int = 0; index < tideArray.length; index++)  
    {  
        if (Math.abs(tideArray[index].difference) < Math.abs(minItem.difference))  
        {  
            minItem = tideArray[index];  
            mindex = index;
        }  
    }
    trace("Min item index: " + mindex);
}