将项目从数组的开头移动到结尾

时间:2014-01-22 16:52:35

标签: jquery arrays push

我在5个主题中有一组十个问题。每个问题都是每个主题的多维数组的一部分。我需要将第一个问题转移到该数组的最后一个位置,然后将其删除。这样,用户将被问到十个问题而不重复它们,并且如果他愿意,将能够重复它们。

这是一个示例数组:

var topic1 = [{
   "question":"Question1?",
   "ans1" :"Answer 1", "ans2" :"Answer 2", "ans3" :"Answer 3"
},
{
   "question":"Question2?",
   "ans1" :"Answer 1", "ans2" :"Answer 2", "ans3" :"Answer 3"
},
{
   "question":"Question2?",
   "ans1" :"Answer 1", "ans2" :"Answer 2", "ans3" :"Answer 3"
}
//and like that 'til qustion 10
]

在用户回答完第一个问题之后,我想要从位置topic1 [0]移动到该数组的末尾,以便topic1 [0]现在是第二个问题。

我尝试切割阵列并推动它,但没有用,就像这样:

var moveThis = topic1.slice(0,1);
topic1.push(moveThis);
topic1.shift();

实际上是将数组推入自身......或类似的东西。

新问题应始终位于数组的位置[0],否则其余代码将无效。 有什么想法吗?

2 个答案:

答案 0 :(得分:2)

试试这个:

topic1.push(topic1.shift());

答案 1 :(得分:0)

这样的事可能有用:

    var firstToEnd = function(array)
    {
        var first = array[0];
        array.removeAt(0);
        array.push(first);
    }

但是,为什么不显示当前的问题,只是在用户回答问题时将当前问题更改为下一个问题?

var current = 0;
var question = topic1[current];

var nextQuestion = function()
{
  current++;
  question = topic1[current];
}