我有这个代码在我的数组中寻找最接近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.difference
中tideArray
的索引? (所以,这里的结果应该是index = 1)
我已尝试tideArray.indexOf(minItem.difference)
,但输出为-1
,因此未找到索引...
我正在寻找索引号,而不是&#34;差异&#34;或&#34;潮汐&#34;。
答案 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);
}