Files
30-seconds-of-code/snippets/indexOfAll.md
Robert Mennell 2629765340 Update indexOfAll snippet return type
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
2018-01-08 13:24:21 -08:00

531 B

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.

const indexOfAll = (arr, val) => {
  const indices = [];
  arr.forEach((el, i) => el === val && indices.push(i));
  return indices;
};
indexOfAll([1, 2, 3, 1, 2, 3], 1); // [0,3]
indexOfAll([1, 2, 3], 4); // []