我正在尝试创建Windows Store应用程序,但无法比较array元素。事情是我不想比较字符串,但它正在这样做。下面是比较代码:
function sort()
{
var ar = NumList.value;
var flag=0;
var arr = ar.split(",");
for (var i = 0; i < arr.length; i++)
{
if (typeof (+arr[i]) === 'number')
flag = 0;
else
flag++;
}
if (flag == 0) {
InsertionSort();
QuickSort();
MergeSort();
SelectionSort();
BubbleSort();
}
else
{
error.showAsync();
}
}
即使Array中有一个字符串元素,它仍在继续并对元素进行排序。有人可以帮我从这里出去吗?
一元+
运算符arr[i]
始终将其转换为数字,即使该值是一个字符串也是如此,因为字符串会转换为NaN
和typeof NaN === "number"
。因此flag
将永远是0
。
您可以NaN
改为检查:
if (!isNaN(+arr[i])) {...}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句