[Home] > Snippets  > Languages  > JavaScript  > Arrays  >  Get indices of a value in an array

Get indices of a value in an array

JavaScript

const indices = (arr, value) => arr.reduce((acc, v, i) => (v === value ? [...acc, i] : acc), [])

// Or
const indices = (arr, value) => arr.map((v, i) => (v === value ? i : false)).filter(Boolean)

TypeScript

const indices = <T,>(arr: T[], value: T): number[] =>
arr.reduce((acc, v, i) => (v === value ? [...acc, i] : acc), [] as number[])

// Or
const indices = <T,>(arr: T[], value: T): number[] =>
arr.map((v, i) => (v === value ? i : false)).filter(Boolean) as number[]

Examples

indices(['h', 'e', 'l', 'l', 'o'], 'l') // [2, 3]
indices(['h', 'e', 'l', 'l', 'o'], 'w') // []