に建てられた何JavaScriptはありませんこれを行うことができます(または私の知識に提案さえ)。しかし、あなた自身を達成することはそれほど難しいことではありません。
あなたが議論していることを想定して、プロトタイプの変更に関する議論を放棄しましょう。あなたが望むものの簡単なバージョンは次のようになります:
Array.prototype.cycle = function(cycleCount, callback) {
for(var i = 0; i < cycleCount; i++) {
this = this.map(callback);
}
}
数字の配列があるとします。そして、あなたがやってすることでこれを呼び出すことができます。
myNumberArray.cycle(2, function(num, i) {
return num * 2;
});
を私たちも、空想得ることができる、そしてあなたは、各サイクルごとに異なるアクションを指定してみましょう:
Array.prototype.cycle = function(cycleCount, callback) {
if(Object.prototype.toString.call(callback) === '[object Array]') {
if(callback.length === cycleCount) {
for(var i = 0; i < cycleCount; i++) {
this = this.map(callback[i]);
}
} else {
// Uhoh, we don't have the right number of callbacks
throw new Error('If using multiple callbacks, the umber of callback\'s must match the number of cycles');
}
} else {
for(var i = 0; i < cycleCount; i++) {
this = this.map(callback);
}
}
}
より多くのエラーは、あなたがに実行する必要がありますチェックありそれを頑強にしましょう。しかしあなたはそのアイデアを得ます。 :)
自分自身を実装するのは難しいことではありません。 Rubyにはstdlibが豊富に用意されているので、各メソッドの等価物がJS-landに存在するとは思わないでしょう。ロダシュとアンダースコアでさえそれを持っていないようです。 –