0

我正在尝试随机化包含 HTML 元素的 Javascript 数组。这是我到目前为止所拥有的,但不幸的是,之后我仍然得到了几个重复项。我看不出这段代码有什么问题。任何想法,任何人?

function randomizeArray(theArray)
        {
            var result = new Array();
            var randomNr;
            while ( theArray.length>0 )
            {
                randomNr = Math.floor( (Math.random() * theArray.length) );
                result.push( theArray[randomNr] );
                theArray.splice( randomNr, 1);
            }
            return result;
        }

编辑:经过进一步审查,当我用一组数字对其进行测试时,该代码似乎按预期工作。出于某种原因,我的数组仍然重复

  • 元素。我没有将元素本身放入数组中,而是使用了元素的 .html() 。在那次小小的修改之后,一切都突然按预期工作了。我仍然不知道为什么会这样,但至少它确实有效:)

  • 4

    2 回答 2

    1

    检查此帖子的最佳答案:循环中的随机数

    语言不同,但原理是一样的。Math.random()每次使用的种子编号都是相同的,并导致出现模式,这反过来又会产生你得到的重复。

    于 2012-06-26T16:32:12.323 回答
    0

    代码按预期工作,问题是我的数组包含元素对象。一旦我将这些对象转换为相应的 html,并将它们用作我的数组中的项目,一切都很好。

    于 2012-06-28T11:40:58.260 回答