Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

145
Vistas
Perform math operation on two Objects in Javascript without selecting the detailed keys

I have two objects, as below:

var origin = {
    x: 10,
    y: 10
}

var coordinates = {
    x: 5,
    y: 5
}

I calculate the delta as follows:

var delta = {
    x : origin.x - coordinates.x,
    y : origin.y - coordinates.y
}

This works, BUT I am looking for a more elegant way, given all I really do is origin - coordinates. Unfortunately, origin - coordinates is not valid javascript

Any suggestions? Maybe using a ... spread operator?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

The basic answer is: No, there isn't a way to do that which is likely to pass your "elegance" test. :-) (I like Sairyu's approach of creating a reusable function [perhaps with a shorter name]. Or you might even make it a Point class with add, sub, etc.)

"Elegant" is a value judgement, but if these are the only properties in the objects and you want to avoid explicitly writing x and y, you can use a for..in loop, a for..of loop on Object.keys, or a combination of Object.entries, map, and Object.fromEntries though the overhead on that last one starts looking a bit overkill.

const delta = {};
for (const key in origin) {
    delta[key] = origin[key] - coordinates[key];
}

or

const delta = {};
for (const key of Object.keys(origin)) {
    delta[key] = origin[key] - coordinates[key];
}

or

const delta = Object.fromEntries(
    Object.entries(origin).map(
        ([key, value]) => [key, value - coordinates[key]]
    )
);

But again: None of these is likely to be "elegant" by most definitions I can imagine. :-)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Maybe the best way is by making a function, something like this :

function calculate_coordinates(point1, point2) {
    const x = point1.x - point2.x;
    const y = point1.y - point2.y;
    return {x, y};
}
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda