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

时间:2018-01-25 07:12:48

标签: arrays actionscript-3

我有这个代码在我的数组中寻找最接近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 

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

我已尝试tideArray.indexOf(minItem.difference),但输出为-1,因此未找到索引...

我正在寻找索引号,而不是&#34;差异&#34;或&#34;潮汐&#34;。

2 个答案:

答案 0 :(得分:2)

尝试使用地图,例如:

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

答案 1 :(得分:0)

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

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);
}