diff --git a/snippets/isArrayLike.md b/snippets/isArrayLike.md index 36eae12a9..ee2fc1718 100644 --- a/snippets/isArrayLike.md +++ b/snippets/isArrayLike.md @@ -2,17 +2,11 @@ Checks if the provided argument is array-like (i.e. is iterable). -Use `Array.from()` and a `try... catch` block to check if the provided argument is array-like. +Check that the object is not a function or `null` and that its `length` property is a non-negative integer below `Number.MAX_SAFE_INTEGER`. ```js -const isArrayLike = arr => { - try { - Array.from(arr); - return true; - } catch (e) { - return false; - } -}; +const isArrayLike = val => + val != null && typeof val != 'function' && val.length > -1 && val.length % 1 == 0 && val.length <= Number.MAX_SAFE_INTEGER; ``` ```js