如何在数据数组和对象的合并中使用对象赋值而不是扩展语法?
How to use object assign instead of spread syntax in merge of array of data and object?
我正在使用传播语法来获取当前对象。
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);
我正在使用传播语法来获取当前对象。
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);