话不多说,直接上源码:

function snail(array) {var results = [];while (array.length > 0) {//使用shift返回当前数组中的第一个元素// 使用concat方法连接被弹出的第一个元素,将其放在最后一位results = results.concat(array.shift());//forEach方法进行数组的遍历array.forEach(function (current) {//使用pop方法弹出最后一个元素,并进行在数组尾添加该元素results.push(current.pop());});array.forEach(function (current) {//reverse() 方法用于颠倒数组中元素的顺序current.reverse();});//再次用于颠倒数组中元素的顺序array.reverse();}return results;
}

测试:

console.log(snail([[1, 2, 3],[4, 5, 6],[7, 8, 9]]));console.log(snail([[]]));console.log(snail([[1, 2, 3, 4, 5],[6, 7, 8, 9, 10],[11, 12, 13, 14, 15],[16, 17, 18, 19, 20],[21, 22, 23, 24, 25]]));

题目地址:https://www.codewars.com/kata/snail/train/javascript

Codewars-Snail(Javascript实现螺旋数组)相关推荐

  1. 如何在JavaScript中比较数组?

    本文翻译自:How to compare arrays in JavaScript? I'd like to compare two arrays... ideally, efficiently. 我 ...

  2. 如何检查变量是否是JavaScript中的数组? [重复]

    本文翻译自:How do you check if a variable is an array in JavaScript? [duplicate] This question already ha ...

  3. 遍历JavaScript中的数组

    在Java中,可以使用for循环遍历数组中的对象,如下所示: String[] myStringArray = {"Hello", "World"}; for ...

  4. JavaScript对象和数组

    在JavaScript中对象是一种数据结构,用于将数据和功能组织在一起,描述一类对象所具有的属性和方法. 对象是某个特定类型的实例.新对象是new操作符后跟一个关键字来实现的.构造函数本身就是一个函数 ...

  5. Javascript如何改变数组的长度?

    修改数组长度 使用"数组名.length"可以获取或修改数组的长度.数组长度的计算方式为数组中元素的最大索引值加1,示例代码如下. var arr = ['a', 'b', 'c' ...

  6. JavaScript实现以数组形式返回斐波那契数列fibonacci算法(附完整源码)

    JavaScript实现以数组形式返回斐波那契数列fibonacci算法(附完整源码) fibonacci.js完整源代码 fibonacci.js完整源代码 export default funct ...

  7. php js动态删除数组元素,javascript如何删除数组中的指定元素

    js删除数组中的指定元素主要分为两步,首先判断数组中是否包含这个元素,然后再通过splice()方法来删除指定元素 本篇文章主要介绍的是如何通过javascript语言对数组中的指定元素进行删除的方法 ...

  8. javascript字典中添加数组_如何在JavaScript中使用数组方法:Mutator方法

    JavaScript中的数组由元素列表组成.JavaScript有许多有用的内置方法来处理数组.修改原始数组的方法称为mutator方法,返回新值或表示的方法称为accessor方法.在本教程中,我们 ...

  9. JavaScript 对象与数组参考大全

    http://www.cnblogs.com/meil/archive/2006/06/28/437527.html本文列举了各种JavaScript对象与数组,同时包括对上述每一对象或数组所完成工作 ...

最新文章

  1. Ubuntu Server对OpenStack的支持
  2. GARFIELD@02-10-2005
  3. feign调用session丢失解决方案
  4. PHP第五周答案,算法设计与分析第五周作业——Word Ladder
  5. 关于代码评审的微博讨论汇集
  6. RTP与RTCP协议介绍
  7. 保姆级带你深入阅读NAS-BERT
  8. 趣味菜单C语言,趣味C语言
  9. js设置radio 和checkbox 单选
  10. OA系统中公文流转简单思路
  11. LED灯随机亮起几个灯
  12. 中国制鞋机械行业调研与投资战略报告(2022版)
  13. gaster字体转换器_gaster语言翻译器
  14. UNITY读取图片素材的URL并使用
  15. Open Distro 初探
  16. 前台HTML现在预览附件
  17. jupyter notebook误删怎么办
  18. TestFlight上架流程
  19. amcharts嵌入到flex中
  20. 用matlab验证时域卷积,用MATLAB实现信号的时域卷积

热门文章

  1. 一文带你入门目前大热的图神经网络
  2. 彭博社“机器学习基础”视频教程已经全部搬到腾讯视频
  3. mysql安装数据自定义_mysql数据库自定义怎么安装
  4. 【Matplotlib】【Python】如何使用matplotlib颜色映射
  5. 顶尖!百度AI算法专家手把手带你论文复现打比赛!
  6. 年终总结 | 2019年人工智能+计算机视觉+深度学习笔记思维导图汇总
  7. 深度强化学习-DDPG算法原理和实现
  8. csh远程登录服务器,ubuntu远程连接服务器某一个用户(非root用户)出现sh: 1: source: not found...
  9. thinkphp漏洞_漏洞分析之thinkPHP反序列化:这就是黑客的世界吗
  10. 云服务器怎么把软件装上去_服务器:云服务器怎么设置301