time-to-botec/squiggle/node_modules/@stdlib/assert/is-circular/README.md
NunoSempere b6addc7f05 feat: add the node modules
Necessary in order to clearly see the squiggle hotwiring.
2022-12-03 12:44:49 +00:00

2.1 KiB

isCircular

Test if an object-like value contains a circular reference.

Usage

var isCircular = require( '@stdlib/assert/is-circular' );

isCircular( value )

Test if an object-like value contains a circular reference.

var obj = {
    'beep': 'boop'
};
var bool = isCircular( obj );
// returns false

obj.self = obj;
bool = isCircular( obj );
// returns true

Notes

  • Object-like values include objects (except for null), arrays, functions, regular expressions, Date objects, and any other JavaScript object to which properties may be bound.

Examples

var isCircular = require( '@stdlib/assert/is-circular' );

var obj1 = {
    'a': 'beep',
    'b': {
        'c': 'boop'
    }
};
obj1.b.self = obj1;
var bool = isCircular( obj1 );
// returns true

var obj2 = {
    'a': {},
    'b': obj1
};
bool = isCircular( obj2 );
// returns true

var arr = [ 1, 2, 3 ];
arr.push( arr );
bool = isCircular( arr );
// returns true

function circ() {}
circ.self = circ;
bool = isCircular( circ );
// returns true

var obj3 = {
    'beep': 'boop'
};
bool = isCircular({
    'a': obj3,
    'b': obj3
});
// returns false

bool = isCircular( {} );
// returns false

bool = isCircular( null );
// returns false