如果数字与否,则无法比较数组值

时间:2014-08-21 10:06:31

标签: javascript windows-store-apps

我正在尝试创建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中有一个字符串元素,它仍然会继续排序元素。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

一元+运算符始终将arr[i]转换为数字,即使该值是字符串,因为字符串转换为NaNtypeof NaN === "number"。因此flag始终为0

您可以改为NaN

if (!isNaN(+arr[i])) {...}