Intenté hacer items.map((item) => arrs.push({item._id:item.word})); pero el primer elemento de la clave no funcionó en absoluto, así que en su lugar escribí un bucle for básico. Ahora, la creación del ciclo for funciona bien y el registro de la consola después del ciclo muestra la información correcta para los valores, pero las claves para todos ellos muestran "temp" como una cadena, en lugar de la identificación deseada de los items[i]._id . En el código VS, la entrada temporal let temp=item... está atenuada y dice "temp se declara pero su valor nunca se lee". Ahora bien, si coloco un console.log(temp) entre let temp... y arrs.push... correctamente la sesión del valor en la variable temporal.
const arrs = []; for (let i = 0; i < items.length; i++) { let temp = items[i]._id; arrs.push({ temp: items[i].word }); }Pensé que la temperatura estaba dentro del mismo alcance, por lo que debería funcionar. No tengo idea de lo que está pasando.
Intenté crear diferentes ámbitos pero nada funcionó.
Está declarando que el nombre de la propiedad es "temp", no asignándolo como un valor. Si está tratando de hacer que un nombre de propiedad sea el valor de temp , puede usar un nombre de propiedad calculado rodeándolo con corchetes [] .
const arrs = []; for (let i = 0; i < items.length; i++) { arrs.push({[items[i]._id]: items[i].word}); } Esto creará un objeto con una clave items[i]._id y value items[i].word . Mejor aún, puedes usar map :
const arrs = items.map(item => { return {[item._id]: item.word}});Siga este fragmento de código, cree un objeto y empújelo en arrs in loop:
let items = [ {_id:'1', word:'test' }, {_id:'2', word:'test2' }, {_id:'3', word:'test3' }, {_id:'4', word:'test4' } ]; let arrs = []; for (var i = 0; i < items.length; i++){ var obj = { [items[i]._id] : items[i].word } arrs.push(obj); } console.log(arrs) let items = [ {_id:'1', word:'test' }, {_id:'2', word:'test2' }, {_id:'3', word:'test3' }, {_id:'4', word:'test4' } ]; let arrs = []; for (var i = 0; i < items.length; i++){ var obj = { [items[i]._id] : items[i].word } arrs.push(obj); } console.log(arrs)