Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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 - Fatal编程技术网

Javascript排序问题

Javascript排序问题,javascript,Javascript,我试图对工作不正常的数组进行排序。没有错误,只是输出显示为:[10,5,12,15,38,45,16,1,6,5,2,25]。请告诉我排序代码的问题。谢谢 var arr1 = [10, 5, 12, 15, 38, 45, 16]; var arr2 = [1, 6, 5, 2, 25]; var arr3 = merge(arr1, arr2); function merge(arr1, arr2) { var combine = arr1 + "," + arr2;

我试图对工作不正常的数组进行排序。没有错误,只是输出显示为:[10,5,12,15,38,45,16,1,6,5,2,25]。请告诉我排序代码的问题。谢谢

var arr1 = [10, 5, 12, 15, 38, 45, 16];
var arr2 = [1, 6, 5, 2, 25];
var arr3 = merge(arr1, arr2);

function merge(arr1, arr2) {

    var combine = arr1 + "," + arr2;

    var arr3 = new Array(combine);

    for (var i = 0; i < arr3.length; i++) {

        arr3.sort(function (n1, n2) {
           return n1-n2;
        });
    }
       document.writeln("Array 3 sorted: " + arr3);

       return arr3;
  }

  merge(arr1, arr2);
var arr1=[10,5,12,15,38,45,16];
var arr2=[1,6,5,2,25];
var arr3=合并(arr1,arr2);
函数合并(arr1、arr2){
var combine=arr1+“,”+arr2;
var arr3=新阵列(组合);
对于(变量i=0;i
将这两个词放在一起,然后按升序排序

var arr3 = (arr1.concat(arr2)).sort(function(a,b){return a-b;});

将两者合并,然后按升序排序

var arr3 = (arr1.concat(arr2)).sort(function(a,b){return a-b;});

您应该使用
.concat()
,而不是用逗号组合两个数组。将两个数组与逗号组合将生成一个字符串

解决方案:

var arr3=arr1.concat(arr2);


然后您可以在arr3上调用
.sort()

您应该使用
.concat()
,而不是使用逗号组合两个数组。将两个数组与逗号组合将生成一个字符串

解决方案:

var arr3=arr1.concat(arr2);


然后您可以在arr3上调用
.sort()

您的问题不在于排序,而在于将两个输入数组组合到
arr3

var combine = arr1 + "," + arr2;
创建一个字符串,其中包含由逗号分隔的
arr1
arr2
的所有元素。然后

var arr3 = new Array(combine);
创建一个仅包含1个元素的数组,即该字符串。您可以使用:

var arr3 = combine.split(',');
但最好首先使用适当的函数来附加数组:

var arr3 = arr1.concat(arr2);

请参阅

您的问题不在于排序,而在于将两个输入数组组合到
arr3

var combine = arr1 + "," + arr2;
创建一个字符串,其中包含由逗号分隔的
arr1
arr2
的所有元素。然后

var arr3 = new Array(combine);
创建一个仅包含1个元素的数组,即该字符串。您可以使用:

var arr3 = combine.split(',');
但最好首先使用适当的函数来附加数组:

var arr3 = arr1.concat(arr2);

请看

是什么让您认为可以用逗号将两个数组粘合在一起,这样就可以了?结果是一个字符串。将该字符串抛回
数组
将生成一个数组,其中该字符串作为单数元素。排序没有效果。Protip:是什么让你认为你可以用逗号把两个数组粘在一起,这样就行了?结果是一个字符串。将该字符串抛回
数组
将生成一个数组,其中该字符串作为单数元素。对其排序无效。Protip: