Necesito crear una matriz basada en el número que es mi límite. Así que a continuación está mi entrada y esta es la salida esperada que estoy buscando
Aporte
3Rendimiento esperado
[{value: 3, label: 3}, {value: 2, label: 2}, {value: 1, label: 1}, {value: 0, label: 0}]Intenté esto
Array(3).map((_, i) => ({value: i, label: i }))Pero esto no funcionó, cualquier ayuda es apreciada.
Esta puede ser una posible solución para lograr el objetivo deseado.
Fragmento de código
const n = parseInt(prompt('Enter value for n: ').toString()) ?? 3; console.log( [...Array(n+1)] .map( (x, i) => ({ value: ni, label: ni }) ) );Explicación
n + 1 elementosi.map() un objeto con value y label de accesoriosn - i como el valor para ambos accesoriosAquí hay una forma en que puede lograr lo que quiere, usando un for boucle:
let input = 3; const result=[] for(let i = input; i>=0; i--){ result.push({value:i, label:i}) } console.log( result) let input =3 console.log(Array.from(Array(input+1)).map((_, i) => ({value: i, label: i})).sort((v1, v2)=>v2.value-v1.value))Necesitas usar Array.from() así:
Array.from(Array(3)).map((_, i) => ({value: i, label: i}))Tenga en cuenta que esto se ejecutará de 0 a 2, no de 0 a 3 según su salida esperada, ya que la longitud de la matriz es 3. La forma más fácil de obtener la salida que espera sería convertirla en una función y agregar 1 a la número proporcionado a la función, es decir
const generateArray = number => Array.from(Array(number + 1)).map((_, i) => ({value: i, label: i})) generateArray(3) // [{value: 0, label: 0}, {value: 1, label: 1}, {value: 2, label: 2}, {value: 3, label: 3}]