jQuery脚本不使用预先填充的Array

时间:2014-09-04 16:16:32

标签: javascript jquery arrays

我希望我不会重复现有的问题,我已经非常努力地在网站上找到我需要的内容,但现在我觉得我需要提出这个问题,所以在这里,我希望你们可以帮助我:小号

我有一个数组;

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

var nomResults = 1Results + 2Results + 3Results + 4Results;

我有一个脚本应该清除重复的数字并显示它们(在 sorted_arr 中);

    var arr = nomResults;
    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(); // 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]);
        }
    }

它工作正常,任何想法为什么 .sort()不适用于我的预先弹出的数组?

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

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

var arr = [Results1, Results2...];

Array.prototype.push()

var arr = [];
arr.push(Results1);
arr.push(Results2);
//...

另外,您可以使用特定的功能进行排序,或者声明一个新功能比较:

function compare(a, b) {
  return a - b;
}

哪个将使用您的数组的实际值(而不是您的注释中指定的字符串)。 然后你把它传递给sort:

arr = arr.sort(compare);

或直接使用匿名功能,如果您不需要多次:

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

答案 1 :(得分:0)

我可以在您的代码中看到两个问题。

  1. 变量名称不得以数字
  2. 开头
  3. var nomResults不是数组而是字符串
  4. 以下代码对我很有用 -

    var results1 = "this", results2="is", results3="an", results4="array", theArray = [results1, results2, results3, results4];

    console.log(theArray);

    [&#34;这&#34;,&#34;是&#34;,&#34;&#34;,&#34;数组&#34;]

    console.log(theArray.sort());

    [&#34;&#34;,&#34;阵列&#34;,&#34;&#34;,&#34;这&#34;]

答案 2 :(得分:0)

我正在构建错误的数组!!!谢谢你们,我知道这会很简单:)

而不是这个;

var nomResults = 1Results + 2Results + 3Results + 4Results;

我需要这样做;

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

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