我一直在努力实现一堆高阶函数.就是图个好玩儿.
但是今天,我发现自己仍然试图重现Array.join方法.
我已经为自己设置了一个挑战,不使用任何循环,例如,for或while尽可能少地使用if语句并减少使用的变量数量.
以下是我的尝试:
Array.prototype.implode = function(glue) {
return (function loop(arr, str) {
return (arr.length > 1
? loop(arr.slice(0, 1), str + arr[0] + (glue || ''))
: str);
})(this, '');
};
const arr = ['a', 'b', 'c', 'd', 'e', 'f'];
console.log(arr.implode('#')); // a#Run Code Online (Sandbox Code Playgroud)