Package Exports
- is-cyclical
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (is-cyclical) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
isCyclical
Returns true if an array will continue to be cyclical if the value supplied is pushed onto it.
Install
npm install is-cyclical --save
Demo
var isCyclical = require('is-cyclical');
isCyclical( [ 1, 2, 3, 1, 2, 3 ], 1 )
//Returns true
//While
isCyclical( [ 1,2,3,4,1,2 ], 2)
//returns false because appending it to the array would break the cycleIf the array were [1,2,3,1,2,3] and the value added were 2 that would break the cycle therefore return false
Deep Equality
isCyclical.deepEquality is initially set to true can be set to false to use an == test rather than a deep equality test
Use Case
I made a game playing AI, in order for the AI to not fall into a loop of making the same moves I made this library so I know the next move will be different than the ones prior(No matter how long of a cycle of moves).