Quiero obtener el índice de la matriz filtrada
const arr = ['apple', 'mango', 'orange', 'banana']; const customFilter = (arr, searchtxt) => { const result = []; arr.filter(fruit => fruit.match(searchtxt)).forEach((element, index) => { result.push(index); }); return result; } console.log(customFilter(arr, 'ma'));Puedes usar reduce . Para cada elemento de la entrada, el siguiente código agrega su índice a una matriz si coincide con la cadena dada.
const arr = ['apple', 'mango', 'orange', 'banana']; const customFilter = (arr, searchtxt) => { return arr.reduce((a, c, i) => c.match(searchtxt) ? [...a, i] : a, []) } console.log(customFilter(arr, 'ma'));Está devolviendo el índice en la matriz filtrada, no su índice en la matriz original.
No use filter() para esto. Simplemente use forEach() , empujando el índice al resultado.
const arr = ['apple', 'mango', 'orange', 'banana']; const customFilter = (arr, searchtxt) => { const result = []; arr.forEach((fruit, index) => { if (fruit.match(searchtxt)) { result.push(index); } }) return result; } console.log(customFilter(arr, 'ma'));