为一个对象设置多个值



我想将多个对象设置为另一个对象的多个值。所以例如

let dataObj ={}
const personData = {name:"sai",age:"20"}
const ids = {id1:"1231455",id2:"425325232"}
dataObj.personData = personData;
dataObj.ids = ids
console.log(dataObj);

"personData"是一个对象,"ids"是一个对象。我将这两个对象设置为"dataObj"的 2 个值。 我想知道是否有更短的方法来实现这一目标,例如:

let dataObj ={}
const personData = {name:"sai",age:"20"}
const ids = {id1:"1231455",id2:"425325232"}
dataObj = personData;
dataObj = ids
console.log(dataObj);

我建议的替代方案的问题在于它不会设置"dataObj"对象的"键"。它只会将"personData"和"ids"的值设置为 dataObj.Is 的值,我有什么方法可以实现这一点?使用键将多个对象指定为另一个对象的值?

您可以使用 spread 语法来实现此目的:

let dataObj = {};
const personData = {name:"sai",age:"20"}
const ids = {id1:"1231455",id2:"425325232"}
dataObj = { ...dataObj, personData, ids };
console.log(dataObj);
/*
output : 
value of dataObj:
{
personData: {
name: "sai",
age" "20"
},
ids: {
id1: "1231455",
id2: "425325232"
}
}
*/

我将尝试使用上面的例子来解释点差。首先,我们从一个空对象开始dataObj{}。我们希望向该对象添加新属性:personDatapersonData对象作为值,idsids对象作为值。

ES2015 添加了用于在对象中设置属性定义的速记语法。这就是这里使用的:

dataObj = { personData, ids };

这只是一种更干净的写作方式

dataObj = {
personData: personData,
ids: ids
};

更多关于这方面的信息可以在MDN上找到。

因为您想在之前初始化对象,所以我们不能简单地覆盖对象,而是需要将新属性添加到现有对象。这可以使用扩展语法来完成。

const oldObject = { key: 'value', anotherKey: 'another value' };
let newObject = { ...oldObject };
// newObject value: { key: 'value', anotherKey: 'another value' };

oldObjectnewObject年"传播"了。导致它具有与oldObject相同的键值对。 在您的代码示例中,我们将一个新对象分配给dataObj。在该新对象中,我们分散当前dataObj:中的所有属性:{ ...dataObj然后添加新属性:, personData, ids }

我希望这个解释是清楚的,请随时询问更多信息。扩展语法非常强大,可以用于很多事情。所以一定要阅读一下。

您可以合并两个对象,如下所示。您可以使用"..."传播对象。扩展对象也适用于对象。克隆对象,如下面的代码所示。欲了解更多信息,请访问 https://flaviocopes.com/javascript-spread-operator/


let dataObj = {}
const personData = { name: "sai", age: "20" }
const ids = { id1: "1231455", id2: "425325232" }
dataObj = { ...dataObj, personData, ids }
console.log(dataObj);

最新更新