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

标签 javascript arrays object spread-syntax

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

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

最佳答案

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 - 如何在数据数组和对象的合并中使用对象分配而不是扩展语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55054071/

相关文章:

javascript - 内容脚本找不到创建的元素?

php - 使用数组 IN() 选择查询并在自定义命名文本字段中回显结果

arrays - 选择要附加到三元运算符 'if' 运算符 : "Immutable value... only has mutating members" 的数组

c# - 用于 ViewState 存储的可序列化类对象在 c# ASP.net 中不起作用

JavaScript 对象按字母顺序排列

javascript - 如何在这里正确使用 isNaN?

javascript - 如何更改上次单击的 div 上的 CSS

javascript - 尝试使用 jQuery 创建菜单,但我的代码无法正常工作

c++ - 是否可以在 C++ 中创建对象数组队列?

java - 如何仅使用 json-simple 从嵌套对象中的键获取值