Hola, soy nuevo en node js y estoy tratando de hacer una matriz a partir de un objeto.
data.forEach((title) => { let array = []; for (var i = 0; i <= data.length; i++) { array.push(title.title.charAt(0).toUpperCase() + title.title.slice(1)) } console.log(array); //access.forEach((conf)=>{ // conf.title // array //}) }) <script> let data = [{ title: "user", fields: "required", access: "done" }, { title: "root", fields: "default", access: "done" }, { title: "super Admin", fields: "allready access", access: "defualt" }, { title: "user1", fields: "required", access: "done" }, { title: "test user", fields: "required", access: "done" }, ] </script>Como quiero una matriz que contenga todo el título, puedo usar ese campo de matriz dentro del método access.forEach, pero lo que obtengo es el título, pero no en la misma matriz sino como una salida diferente
Rendimiento esperado
array = [User,Root,Super Admin,User1,Test user]Una función de flecha que pasa a forEach se ejecuta para cada elemento de la matriz de data , de modo que crea una nueva matriz let array=[] para cada elemento de la matriz original. O desea declarar la matriz fuera de la función:
let array=[]; data.forEach(item => { array.push(item.title[0].toUpperCase() + item.title.slice(1)); }) o incluso mejor usa map
let titles = data.map(item => item.title[0].toUpperCase() + item.title.slice(1)) Una salida en ambos casos será: ["User", "Root", "Super Admin", "User1", "Test user"]
Puede lograr esto usando Array.map() simple.
Demostración de trabajo:
let data = [{ title: "user", fields: "required", access: "done" }, { title: "root", fields: "default", access: "done" }, { title: "super Admin", fields: "allready access", access: "defualt" }, { title: "user1", fields: "required", access: "done" }, { title: "test user", fields: "required", access: "done" }]; const array = data.map((obj) => obj.title.charAt(0).toUpperCase() + obj.title.slice(1)); console.log(array);