如何在数组中找到对象的索引号
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);
}
我有这段代码在我的数组中寻找最接近 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);
}