如何在数据数组和对象的合并中使用对象分配而不是扩展语法?

Posted

技术标签:

【中文标题】如何在数据数组和对象的合并中使用对象分配而不是扩展语法?【英文标题】:How to use object assign instead of spread syntax in merge of array of data and object? 【发布时间】:2019-07-29 22:42:50 【问题描述】:

我使用扩展语法来获取当前对象。

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】:

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);

【讨论】:

以上是关于如何在数据数组和对象的合并中使用对象分配而不是扩展语法?的主要内容,如果未能解决你的问题,请参考以下文章

使用扩展运算符更改数组中的属性返回对象而不是数组

如何在扩展类 javascript 中获取更新的对象数组

扩展运算符在对象的数组内分配数据

从数组中扩展现有对象的数据

如何组合 2 个对象并在其中合并数组 [重复]

使用数组而不是 Java 中的 ArrayList 从用户输入创建一个新对象