首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按这个顺序打印Javascript中的数字数组(第一-最后,第二-最后.)

按这个顺序打印Javascript中的数字数组(第一-最后,第二-最后.)
EN

Stack Overflow用户
提问于 2020-11-11 20:06:11
回答 2查看 839关注 0票数 1

编写了一个"PrintZigZag“程序,它提供了一个包含任何值的10个整数数组,并按以下顺序打印元素:第一个--最后一个,第二个--最后一个,等等.(程序的编写必须假装不知道在数组中输入的值是什么)

这是一个“初级网络开发者”的面试问题,我不知道如何解决.

代码语言:javascript
运行
复制
let numbers = [1,2,3,4,5,6,7,8,9,10];
EN

回答 2

Stack Overflow用户

发布于 2020-11-11 20:33:49

这就是你要找的结果?

[1, 10, 2, 9, 3, 8, 4, 7, 5, 6]

我真的很喜欢面试问题,谢谢你的分享。请让我解释一下我在这里做什么

代码语言:javascript
运行
复制
let numbers = [1,2,3,4,5,6,7,8,9,10];
var result = [];
for(i=1; i< numbers.length+1 /2; i++) {
    result.push(i);
    result.push(numbers.pop());

}

我从1开始循环超过一半的数组,然后将第一个索引推到结果数组上,然后在我弹出数组的最后一个数之后直接打开。

这将建立一个由第一个数和最后一个数组成的新数组,最终到达终点。

票数 2
EN

Stack Overflow用户

发布于 2020-11-11 21:27:42

这里是使用.map的甜寒费城的解决方案。面试官可能希望看到你使用for循环,但是了解现代循环也会有帮助。

代码语言:javascript
运行
复制
let arr = [];
numbers.map(item => {
   arr.push(item);
   arr.push(numbers[numbers.length - 1])
   numbers.pop()
})

这是一个有do的解决方案,就像Peter S提到的循环一样。小心这些,因为如果不能正确地转义,它们可能会以无限循环结束。

代码语言:javascript
运行
复制
let arr = [];
do {
  arr.push(numbers[0])
  arr.push(numbers[numbers.length - 1])
  numbers.shift()
  numbers.pop()
} while (numbers.length > 0)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64793421

复制
相关文章

相似问题

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