Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.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 jQuery脚本不使用预填充的数组_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript jQuery脚本不使用预填充的数组

Javascript jQuery脚本不使用预填充的数组,javascript,jquery,arrays,Javascript,Jquery,Arrays,我希望我不是在重复一个已经存在的问题,我已经非常努力地在网站上找到我需要的东西,但是现在我觉得我需要问这个问题,所以,我希望你们能帮助我:s 我有一个数组 var 1Results = somecontent; var 2Results = somecontent; var 3Results = somecontent; var 4Results = somecontent; var nomResults = 1Results + 2Results + 3Results + 4Results;

我希望我不是在重复一个已经存在的问题,我已经非常努力地在网站上找到我需要的东西,但是现在我觉得我需要问这个问题,所以,我希望你们能帮助我:s

我有一个数组

var 1Results = somecontent;
var 2Results = somecontent;
var 3Results = somecontent;
var 4Results = somecontent;

var nomResults = 1Results + 2Results + 3Results + 4Results;
我有一个脚本,该脚本将删除重复的数字并显示它们(在已排序\u arr

var arr=nomResults;
var sorted_arr=arr.sort();//您可以在这里定义比较函数。
//JS默认使用蹩脚的字符串比较。
var结果=[];
对于(变量i=0;i
这个脚本不工作,但是我把脚本改成这个

    var arr = [9, 9, 111, 2, 3, 4, 4, 5, 7];
    var sorted_arr = arr.sort(); // You can define the comparing function here. 
                                 // JS by default uses a crappy string compare.
    var results = [];
    for (var i = 0; i < arr.length - 1; i++) {
        if (sorted_arr[i + 1] == sorted_arr[i]) {
            results.push(sorted_arr[i]);
        }
    }
var-arr=[9,9,111,2,3,4,4,5,7];
var sorted_arr=arr.sort();//您可以在这里定义比较函数。
//JS默认使用蹩脚的字符串比较。
var结果=[];
对于(变量i=0;i
它工作得很好,你知道为什么.sort()不能与我的预压缩数组一起工作吗


非常感谢您的帮助。

我在您的代码中看到了两个问题

  • 变量名不能以数字开头
  • var nomResults不是数组,而是字符串
  • 下面的代码对我来说很好-

    var results1=“this”,
    results2=“is”,
    results3=“an”,
    results4=“数组”,
    数组=[results1,results2,results3,results4]

    console.log(数组)

    [“this”、“is”、“an”、“array”]

    console.log(theArray.sort())


    [“an”、“array”、“is”、“this”]

    您必须使用括号表示法向新数组添加元素,如:

    var arr = [Results1, Results2...];
    
    Array.prototype.push()

    此外,您还可以使用特定函数进行排序,或者声明新函数比较:

    function compare(a, b) {
      return a - b;
    }
    
    它将使用数组的实际值(而不是注释中指定的字符串)。 然后将其传递给排序:

    arr = arr.sort(compare);
    
    或者直接使用匿名函数,如果您不需要多次:

    arr = arr.sort(function(a, b) {
      return a - b;
    });
    

    我的阵列构建错误!!!谢谢你们,我知道这会很简单:)

    而不是这个,

    var nomResults = 1Results + 2Results + 3Results + 4Results;
    
    我需要这样做

    var nomResults = [Results1, Results2, Results3, Results4];
    

    我已经看了这么久了,我没有看到它。我的脚本现在可以正常工作了,非常棒,错误都消失了,这太神奇了。许多道具和感谢@jpreynat非常感谢:)我需要一个假期……

    var nomResults=1Results+2Results+3Results+4Results
    不是数组,1Results不是有效的JavaScript标识符。它甚至不应该解析。您的意思是使用
    var nomResults=[Results1,Results2,…]
    吗?抱歉,刚刚编辑了代码以反映其他数组代码仍然显示
    nomResults
    只是其他变量的串联。它仍然不是数组。它只是一个值,因此没有什么可“排序”。您的
    var arr
    是一个数组(方括号内有多个逗号分隔的值),因此它可以排序。在JavaScript标识符中,第一个字符必须是字母、下划线(u)或美元符号($)。它不能是数字。“+”运算符不能用于操纵或创建数组。这是数组:
    [1,2,3]
    ;这不是数组,而是6:
    1+2+3
    var nomResults = 1Results + 2Results + 3Results + 4Results;
    
    var nomResults = [Results1, Results2, Results3, Results4];