Javascript 使用jsfuck约定以流方式调用数组的方法

Javascript 使用jsfuck约定以流方式调用数组的方法,javascript,jsfuck,Javascript,Jsfuck,这是but对数组的延续。假设我想用两个参数调用数组函数,例如 console.log( [3,4,5]。切片(1,2) )前面提到的将方法主题封装在数组中的现有技术专门用于字符串,将“string”转换为[“string”]。诀窍是不带参数地使用.split()。应用该技巧后,使用其他小技巧应用所需的方法并允许在结果上进行链接并不困难 当然,既然主题是一个数组,我们就不能使用.split() 事实证明,您可以使用以下方法对阵列执行此操作: console.log( [3,4,5].reduc

这是but对数组的延续。假设我想用两个参数调用数组函数,例如

console.log(
[3,4,5]。切片(1,2)

)
前面提到的将方法主题封装在数组中的现有技术专门用于字符串,将“string”转换为[“string”]。诀窍是不带参数地使用
.split()
。应用该技巧后,使用其他小技巧应用所需的方法并允许在结果上进行链接并不困难

当然,既然主题是一个数组,我们就不能使用
.split()

事实证明,您可以使用以下方法对阵列执行此操作:

console.log(
[3,4,5].reduce([].constructor).slice(-1)
)
我在这里开发了一个很好的解决方案,当数组为空或只有一个元素时,这个解决方案会出现问题。利用他的想法,我找到了用一个元素解决问题的解决方案(但仍然存在空数组的问题)

关键问题是:将数组
[1,2,3]
包装到另一个数组中,以流方式获得
[[1,2,3]]
(无代码包装)-为此,我们可以使用以下代码

console.log(
[3,4,5]。映射([].constructor)[0]。切片(-1)
)
console.log(
[3] .map([].constructor)[0].slice(-1)
)
这里我自己开发(基于)-为了清晰起见,我单独给出了答案。最后,我找到了一个解决方案,该解决方案适用于具有零个、一个和多个元素的数组。因此,关键问题是:用另一个数组包装输入数组
[3,4,5]
,以仅使用右侧运算符的“流动方式”获取
[[3,4,5]]
:)

console.log(
[].map([].constructor).concat([[]]])[0].slice(-1)
)
console.log(
[5] .map([].constructor).concat([[]]])[0].slice(-1)
)
console.log(
[3,4,5].映射([].constructor).concat([[]]])[0].切片(-1)

)
从定义上看,关于深奥语言的问题肯定不符合要求吗?看起来更像。@jonrsharpe jsfuck不是语言-它是JS(与JSON相同)深奥风格的子集,所以-只是不要这样写代码,问题解决了。像这样的任意约束并不比家庭作业问题的任意约束更有用。特别是对于
slice
,并且只有当您对参数和数组长度有一些预先了解时,示例才能编码为
[3,4,5].reverse().slice(1/*length-2*/).reverse().slice(1)
。明白了<代码>[3,4,5].reduce([].constructor.of).slice(-1)给出了
[[3,4,5]]
。然后你可以应用现有的方法。谢谢你-我再次认为这是不可能的:)(也许对未来的读者来说,如果他们错过了最后一步(对我来说这不是问题),使用[“方法”]符号会很好)。最后还必须添加一个警告。我为一个元素数组案例开发了您的答案,我发现它也支持0元素数组:)可能也会对您感兴趣