Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果数组值是否为数字,则无法进行比较_Javascript_Windows Store Apps - Fatal编程技术网

Javascript 如果数组值是否为数字,则无法进行比较

Javascript 如果数组值是否为数字,则无法进行比较,javascript,windows-store-apps,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

我正在尝试创建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();
}
 }
函数排序()
{
var ar=NumList.value;
var标志=0;
var arr=ar.split(“,”);
对于(变量i=0;i

即使数组中有一个string元素,它也会继续对元素进行排序。有人能帮我吗?

一元
+
运算符总是将
arr[i]
转换为数字,即使值是字符串,因为字符串转换为
NaN
,并且
typeof NaN==“number”
。因此,
标志
将始终为
0

您可以改为选中
NaN

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

一元
+
运算符始终将
arr[i]
转换为数字,即使该值是字符串(
typeof NaN==“number”
)。因此,
flag
将始终是
0
@Teemu:-不幸的是,如果我输入字符串元素,这些元素也会以随机顺序排序。正如预期的那样。也许我之前的评论有点措词不当<代码>+(“字符串”)===NaN
类型的NaN===“number”
。我仍然无法理解。你能给我一个答复吗?