如何在没有 .reverse() 的情况下反转 16 个或更少字符的 JavaScript 数组?

Man*_*iri 1 javascript arrays reverse

我正在尝试解决Codewars 上的一个挑战,它要求您在 JavaScript 中反转数组,长度为 16 个字符或更少。使用.reverse()不是一种选择。

您的代码中允许的最大字符数为 28,其中包括函数名称weirdReverse,因此您只有 16 个字符来解决它。约束 -

您的代码需要尽可能短,实际上不要超过 28 个字符

样本输入和输出 -

输入:包含任何类型数据的数组。前任:[1,2,3,'a','b','c',[]]

输出: [[],'c','b','a',3,2,1]

给出的起始代码是-

weirdReverse=a=>
Run Code Online (Sandbox Code Playgroud)

我的解决方案(29 个字符)是 -

weirdReverse=a=>a.sort(()=>1)
Run Code Online (Sandbox Code Playgroud)

这当然失败了 -

代码长度应小于或等于 28 个字符。

您的代码长度 = 29 - 预期:'代码长度 <= 28',而是得到:'代码长度 > 28'

我不确定这里还有什么要截断的。

注意 - 我确实考虑过在CodeGolf SE上发布这个问题,但由于范围有限,我觉得它不适合那里。

Cer*_*rus 6

我想给你一个提示,而不是给你答案:

您已经接近了,但是您可以通过使用需要在代码中添加的内容来保存字符。

通过添加您不会使用的东西,您可以删除().


剧透(答案):

// Note: this only really works for this specific case.
// Never EVER use this in a real-life scenario.

var a = [1,2,3,'a','b','c',[]]

weirdReverse=a=>a.sort(x=>1)
//                     ^ That's 1 character shorter than ()

console.log(weirdReverse(a))
Run Code Online (Sandbox Code Playgroud)