首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将元素拼接到数组的开头?

问如何将元素拼接到数组的开头?
EN

Stack Overflow用户
提问于 2015-04-21 16:06:02
回答 2查看 163关注 0票数 0

我对Javascript很陌生,我正在尝试创建一个函数,根据num是===到的次数来旋转数组。所以如果num = 2 ["Harry", "Sarah", "Oscar", "Tina"]变成["Oscar", "Tina", "Harry", "Sarah"]

到目前为止,我的代码如下:

代码语言:javascript
复制
var count = 0;

function rotate(arr, num) {
  while (count < num) {
    arr.splice(0,0, "Tina");
    arr.pop();
    count++
  }
  return arr
}

console.log(rotate(["Harry", "Sarah", "Oscar", "Tina"], 2));

对于这个行- arr.splice(0,0, "Tina");我希望它能够将第四个元素的名称带到数组的前面,我不确定这是否可能?我被假定用剪接来做这个方法。谢谢你的帮助?!)

编辑:这个问题不同于其他问题。我不想要一个完整的旋转解决方案,我只想知道是否有可能将第四个元素拼接到开头?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-21 16:15:24

尝试在for循环中移动数组:

​

代码语言:javascript
复制
function rotate(arr, num){
    for(var i = 0; i < num; i++){
        item = arr[arr.length-1]
        arr.splice(arr.length-1, 1);
        arr.unshift(item)
    }
    return arr
}

alert(JSON.stringify(rotate(["Harry", "Sarah", "Oscar", "Tina"], 2)));
alert(JSON.stringify(rotate(["Harry", "Sarah", "Oscar", "Tina"], 1)));

​

票数 1
EN

Stack Overflow用户

发布于 2015-04-21 16:19:52

你不需要循环。首先将数组末尾的最后一个num元素拼接,然后将它们全部拼接到前面。

​

代码语言:javascript
复制
function rotate(arr, num) {
        var lastN = arr.splice(-num, num);
        [].splice.apply(arr, [0, 0].concat(lastN));
        return arr;
    }
document.getElementById("result").innerHTML = JSON.stringify(rotate(["Harry", "Sarah", "Oscar", "Tina"], 2));
代码语言:javascript
复制
<div id="result"></div>

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29777547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档