From 2f1c0e9513b5e055271b8a6bebc25b0403ca16a0 Mon Sep 17 00:00:00 2001 From: Chalarangelo Date: Fri, 18 Jun 2021 21:30:29 +0300 Subject: [PATCH] Add hasOne and hasMany --- snippets/hasMany.md | 19 +++++++++++++++++++ snippets/hasOne.md | 19 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 snippets/hasMany.md create mode 100644 snippets/hasOne.md diff --git a/snippets/hasMany.md b/snippets/hasMany.md new file mode 100644 index 000000000..087c80922 --- /dev/null +++ b/snippets/hasMany.md @@ -0,0 +1,19 @@ +--- +title: hasMany +tags: array,beginner +firstSeen: 2021-07-11T05:00:00-04:00 +--- + +Checks if an array has more than one value matching the given function. + +- Use `Array.prototype.filter()` in combination with `fn` to find all matching array elements. +- Use `Array.prototype.length` to check if more than one element match `fn`. + +```js +const hasMany = (arr, fn) => arr.filter(fn).length > 1; +``` + +```js +hasMany([1, 3], x => x % 2); // true +hasMany([1, 2], x => x % 2); // false +``` diff --git a/snippets/hasOne.md b/snippets/hasOne.md new file mode 100644 index 000000000..1df6d6ace --- /dev/null +++ b/snippets/hasOne.md @@ -0,0 +1,19 @@ +--- +title: hasOne +tags: array,beginner +firstSeen: 2021-07-04T05:00:00-04:00 +--- + +Checks if an array has only one value matching the given function. + +- Use `Array.prototype.filter()` in combination with `fn` to find all matching array elements. +- Use `Array.prototype.length` to check if only one element matches `fn`. + +```js +const hasOne = (arr, fn) => arr.filter(fn).length === 1; +``` + +```js +hasOne([1, 2], x => x % 2); // true +hasOne([1, 3], x => x % 2); // false +```