如何在不使用 .reverse() 的情况下以 16 个或更少的字符反转 JavaScript 中的数组?

How do I reverse an array in JavaScript in 16 characters or less without .reverse()?

我正在尝试解决 Codewars 上的 challenge 问题,它要求您在 JavaScript 中以 16 个或更少的字符反转数组。使用 .reverse() 不是一个选项。

代码中允许的最大字符数为 28,其中包括函数名称 weirdReverse,因此您只需 16 个字符即可求解。约束条件 -

Your code needs to be as short as possible, in fact not longer than 28 characters

示例输入和输出 -

Input: an array containing data of any types. Ex: [1,2,3,'a','b','c',[]]

Output: [[],'c','b','a',3,2,1]

给出的启动代码是-

weirdReverse=a=>

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

weirdReverse=a=>a.sort(()=>1)

这当然失败了 -

Code length should less or equal to 28 characters.

your code length = 29 - Expected: 'code length <= 28', instead got: 'code length > 28'

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

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

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

你很接近,但是你可以通过 而不是 使用你需要在代码中添加的东西来保存字符。

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


剧透(答案):

// 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))