Tengo una variedad de objetos. Quiero multiplicar GDPAnn por 10**6 .
var Annual = [{"Date":1998,"Value":4.5,"GDPAnn":9062800},{"Date":1999,"Value":4.8,"GDPAnn":9631200},{"Date":2000,"Value":4.1,"GDPAnn":10251000},{"Date":2001,"Value":1,"GDPAnn":10581900}]El siguiente código devuelve solo GDPAnn transformado. Quiero la matriz similar a la anterior dentro de los valores transformados de GDPAnn.
Annual.map((o) => o.GDPAnn * 10**6)Para una forma más corta que no sea hacer un cuerpo de función completo y una declaración de devolución, puede (ab) usar el operador de coma:
Annual.map((o) => (o.GDPAnn *= 10**6, o))El operador coma evalúa su operando izquierdo y evalúa su operando derecho, luego le da el valor del operando derecho.
En este caso, lo usamos para multiplicar o.GDPAnn y luego devolvemos o una vez que hayamos terminado.
simplemente cambia tu código a este
var Annual = [ { Date: 1998, Value: 4.5, GDPAnn: 9062800 }, { Date: 1999, Value: 4.8, GDPAnn: 9631200 }, { Date: 2000, Value: 4.1, GDPAnn: 10251000 }, { Date: 2001, Value: 1, GDPAnn: 10581900 }, ]; Annual.map((o) => { o.GDPAnn = o.GDPAnn * 10 ** 6; return o; }); console.log("Annual", Annual); // [ // { Date: 1998, Value: 4.5, GDPAnn: 9062800000000 }, // { Date: 1999, Value: 4.8, GDPAnn: 9631200000000 }, // { Date: 2000, Value: 4.1, GDPAnn: 10251000000000 }, // { Date: 2001, Value: 1, GDPAnn: 10581900000000 } // ]Parece que no está asignando el resultado de su llamada map() a nada, en cuyo caso debería usar forEach() o un ciclo simple para mutar la matriz original.
const Annual = [{ "Date": 1998, "Value": 4.5, "GDPAnn": 9062800 }, { "Date": 1999, "Value": 4.8, "GDPAnn": 9631200 }, { "Date": 2000, "Value": 4.1, "GDPAnn": 10251000 }, { "Date": 2001, "Value": 1, "GDPAnn": 10581900 }] for (const o of Annual) { o.GDPAnn = o.GDPAnn * 10 ** 6 } console.log(Annual); Si, en cambio, realmente desea devolver una nueva matriz (como pretende map() ), entonces probablemente debería clonar cada objeto para evitar la mutación en la matriz original. (Aquí usando sintaxis extendida (...) para clonar cada objeto y luego proporcionando el valor actualizado para GDPAnn )
const Annual = [{ "Date": 1998, "Value": 4.5, "GDPAnn": 9062800 }, { "Date": 1999, "Value": 4.8, "GDPAnn": 9631200 }, { "Date": 2000, "Value": 4.1, "GDPAnn": 10251000 }, { "Date": 2001, "Value": 1, "GDPAnn": 10581900 }]; const updatedAnnual = Annual.map(o => ({ ...o, GDPAnn: o.GDPAnn * 10 ** 6 })); console.log(updatedAnnual);