Quiero averiguar el índice del elemento que es el número más bajo en la matriz. Por ejemplo: la función getIndexToIns([3, 2, 10, 7], 4) devolverá 2 porque si se inserta 4 en la matriz, la matriz debería ser [2, 3, 4, 7, 10] siguiendo el orden ascendente. Y 4 tiene el índice de 2.
Y mi fragmento de código es el siguiente y muestra el error "TypeError: newArr.sort no es una función"
function getIndexToIns(arr, num) { newArr = arr.push(num); newArr.sort((a, b) => ab); return newArr.indexOf(num) } getIndexToIns([2, 10, 4], 50); console.log(getIndexToIns([2, 10, 4], 50))¿Qué está mal en mi fragmento de código?
.push() modifica la matriz en su lugar , no devuelve una nueva matriz. Entonces newArray no es una matriz.
Puede crear una nueva matriz con algo como:
let newArr = [...arr, num];O quizás:
let newArr = arr.concat([num]);Consulte la documentación de Array.prototype.push() :
El método push() agrega uno o más elementos al final de una matriz y devuelve la nueva longitud de la matriz.
Además de eso, los métodos push y sort mutan su matriz original. Debes definir tu newArr así:
const newArr = [...arr, num];Luego puede ordenarlo y encontrar el índice del elemento como lo hace ahora.