我正在尝试创建Windows应用商店应用,但我无法比较数组元素。事情是我不希望比较字符串,但它正在这样做。以下是比较代码: -
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中有一个字符串元素,它仍然会继续排序元素。任何人都可以帮助我吗?
答案 0 :(得分:1)
一元+
运算符始终将arr[i]
转换为数字,即使该值是字符串,因为字符串转换为NaN
和typeof NaN === "number"
。因此flag
始终为0
。
您可以改为NaN
:
if (!isNaN(+arr[i])) {...}