Как использовать объектный присваивание вместо распространенного синтаксиса в слиянии массива данных и объекта? - PullRequest
0 голосов
/ 08 марта 2019

Я использую синтаксис распространения, чтобы получить текущий объект.

const x = [{ port: 3000, typ: "port" }, { port: 4000, typ: "port" }];
const IDs = [3246237348, 738423894, 73824923]
const y = {
  ...x[0],
  CSSID
};

Object {port: 3000, typ: "port", CSSID: Array[3]}
  port: 3000
  typ: "port"
  CSSID: Array[3]
     0: 3246237348
     1: 738423894
     2: 73824923

Но я хочу использовать присвоение объекта вместо распространенного синтаксиса, кажется простым, но я не знаю, как получить результат:

const ob = Object.assign(Object.assign({}, x[0], Object.assign(CSSID)) );

Object {0: 3246237348, 1: 738423894, 2: 73824923, port: 3000, typ: "port"}
    0: 3246237348
    1: 738423894
    2: 73824923

1 Ответ

2 голосов
/ 08 марта 2019

Object.assign() копирует свойства из одного или нескольких объектов в один целевой объект. Поскольку CSSID является массивом, он копирует свойства массива (элементы) в объект. Поскольку вам нужен объект со свойством CSSID, задайте его как свойство целевого объекта или одного из источников:

CSSID должен быть свойством объекта:

const x = [{ port: 3000, typ: "port" }, { port: 4000, typ: "port" }];
const CSSID = [3246237348, 738423894, 73824923];
const ob = Object.assign({}, x[0], { CSSID }); // or Object.assign({ CSSID }, x[0]);

console.log(ob);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...