¿Cuál es la mejor manera de convertir esto?
const items = [ { name: "Leon", url: "../poeple" }, { name: "Bmw", url: "../car" } ];en esto usando javascript:
const result = { Leon: "../poeple", Bmw: "../car" };Puede asignar los objetos como entradas y obtener un objeto de ellos.
const items = [{ name: "Leon", url: "../poeple" }, { name: "Bmw", url: "../car" }], result = Object.fromEntries(items.map(({ name, url }) => [name, url])); console.log(result);Podrías simplemente reducir la matriz:
const items = [{ name: "Leon", url: "../people" }, { name: "Bmw", url: "../car" } ]; const o = items.reduce((o, el) => { o[el.name] = el.url; return o; }, {}); console.log(o) El método Array.prototype.reduce es muy flexible y podría usarse para reducir una matriz a otra entidad:
El método reduce() ejecuta una función de devolución de llamada "reductora" proporcionada por el usuario en cada elemento de la matriz, en orden, pasando el valor de retorno del cálculo en el elemento anterior. El resultado final de ejecutar el reductor en todos los elementos de la matriz es un valor único.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
Hay muchos enfoques diferentes como puede ver. Pero si es nuevo en JavaScript, tal vez un simple bucle sobre la matriz para crear nuevas claves y valores en un nuevo objeto sería más fácil de entender.
const items=[{name:"Leon",url:"../poeple"},{name:"Bmw",url:"../car"}]; const out = {}; for (const obj of items) { out[obj.name] = obj.url; } console.log(out);