Объединить значения объектов в один объект - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть два объекта -

a = {0:"hai",1:"hello"}
b = {0:"what",1:"you"}

Я хочу получить результирующий объект при слиянии следующего формата

c = {0:"hai",1:"hello",2:"what",3:"you"}

Я пробовал разные методы слияния, но не смог этого добиться , Каковы оптимальные способы достижения вышеуказанного?

Ответы [ 2 ]

2 голосов
/ 24 апреля 2020

Вот решение, которое по существу преобразует объекты в массивы, а затем объединяет их вместе, используя Array.prototype.concat:

Object.assign([], {0:"hai",1:"hello"}).concat(Object.assign([], {0:"what",1:"you"}))
0 голосов
/ 24 апреля 2020

Универсальный подход для произвольного числа объектов ввода


Учитывая, что вы хотите объединить свои объекты (с перекрывающимися клавишами) в порядке появления, я могу предложить следующее (работает для произвольного количества ввода объекты)

Ниже приводится живая демонстрация в качестве доказательства концепции:

const a = {0:"hai",1:"hello"},
      b = {0:"what",1:"you"},
      
      mergeObjects = (...args) => ({...args.flatMap(Object.values)}),
      
      c = mergeObjects(a,b)
      
console.log(c)
.as-console-wrapper{min-height:100%;}

Однако, поскольку вы, кажется, не используете ключи объекта, и простой массив может быть тем, что вам нужно, вы можете go так просто :

const a = {0:"hai",1:"hello"},
      b = {0:"what",1:"you"},
      
      mergeObjects = (...args) => args.flatMap(Object.values),
      
      c = mergeObjects(a,b)
      
console.log(c)
.as-console-wrapper{min-height:100%;}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...