Now we're just going to return an empty array. This keeps a consistent return type, does not need checking, and won't break api chaining. Decision was made because otherwise you'd have to add a filter step or check if the return is not an array. Instead we just want an empty array so it has a consistent API, and no indeces is a valid amount
20 lines
531 B
Markdown
20 lines
531 B
Markdown
### indexOfAll
|
|
|
|
Returns all indices of `val` in an array. If `val` never occurs, returns `[-1]`.
|
|
|
|
Use `Array.forEach()` to loop over elements and `Array.push()` to store indices for matching elements.
|
|
Return `[-1]` if `length` of the array of indices is `0`, otherwise return the array of indices.
|
|
|
|
```js
|
|
const indexOfAll = (arr, val) => {
|
|
const indices = [];
|
|
arr.forEach((el, i) => el === val && indices.push(i));
|
|
return indices;
|
|
};
|
|
```
|
|
|
|
```js
|
|
indexOfAll([1, 2, 3, 1, 2, 3], 1); // [0,3]
|
|
indexOfAll([1, 2, 3], 4); // []
|
|
```
|