Skip to content

Instantly share code, notes, and snippets.

@think49
Last active February 27, 2016 18:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save think49/f4efb81f2042e75b2f24 to your computer and use it in GitHub Desktop.
Save think49/f4efb81f2042e75b2f24 to your computer and use it in GitHub Desktop.
increment-by-number-range.js: 範囲指定の数字をインクリメントループする(ex: 5 -> 6 -> 7 -> 5 -> 6 ->...)

increment-by-number-range.js

概要

範囲指定内で数字をインクリメントさせます。 例えば、「5 -> 6 -> 7 -> 5 -> 6 ->...」のようにループします。

HowTo

第一引数から「現在値, 開始値, 終了値」を指定し、関数を返します。 返した関数を呼び出す度に開始値、終了値の範囲でインクリメントします。

var outputNumber = incrementByNumberRange(5, 5, 7); // 「現在値, 開始値, 終了値」を指定

console.log(outputNumber()); // 5
console.log(outputNumber()); // 6
console.log(outputNumber()); // 7
console.log(outputNumber()); // 5
console.log(outputNumber()); // 6
console.log(outputNumber()); // 7
console.log(outputNumber()); // 5
console.log(outputNumber()); // 6
console.log(outputNumber()); // 7
console.log(outputNumber()); // 5
console.log(outputNumber()); // 6
console.log(outputNumber()); // 7

デモ

/**
* increment-by-number-range.js
*
* @version 1.0.0
* @author think49
* @url https://gist.github.com/think49/f4efb81f2042e75b2f24
* @license http://www.opensource.org/licenses/mit-license.php (The MIT License)
*/
'use strict';
function incrementByNumberRange (current, start, end) {
end = end + 1 - start;
current -= start;
return function outputNumber () {
return current++ % end + start;
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment