Javascript 如何使用数组命名的属性创建对象';s元素

Javascript 如何使用数组命名的属性创建对象';s元素,javascript,arrays,object,ecmascript-6,Javascript,Arrays,Object,Ecmascript 6,当 让Adam={}; {Adam} //{亚当:{}} 对于对象数组,情况并非如此: 让Adam={}; 让Eva={}; [Adam,Eva].map(man=>({man})) //[{man:{},{man:{}] 我想要[{Adam:{},Eva:{}]。为什么不是这样?我不知道这样做的目的,但你可以这样做: let Adam = {}; let Eva = {}; const arr = [{Adam, Eva}]; 让Adam={}; 让Eva={}; log([{Ad

让Adam={};
{Adam}
//{亚当:{}}
对于对象数组,情况并非如此:

让Adam={};
让Eva={};
[Adam,Eva].map(man=>({man}))
//[{man:{},{man:{}]

我想要
[{Adam:{},Eva:{}]
。为什么不是这样?

我不知道这样做的目的,但你可以这样做:

let Adam = {}; 
let Eva = {};

const arr = [{Adam, Eva}];
让Adam={};
让Eva={};

log([{Adam,Eva}])
我不知道这样做的目的,但您可以这样做:

让Adam={};
让Eva={};

console.log([{Adam,Eva}])
您希望以编程方式执行的操作是不可能的,因为您依赖变量名来创建属性,并且在map函数中,变量名只是
man

创建这样的数组的唯一方法是手动指定每个元素:

const arr = [{Adam}, {Eva}]

您所拥有的不会动态工作,每个对象都需要一个
名称
id
属性。

您希望以编程方式执行的操作是不可能的,因为您依赖变量名来创建属性,而在map函数中,变量名只是
man

创建这样的数组的唯一方法是手动指定每个元素:

const arr = [{Adam}, {Eva}]

您所拥有的不会动态工作,每个对象都需要一个
名称
id
属性。

因为实际上,当您使用对象属性速记时,它会按字面意思取名
,并在循环的每次迭代中覆盖该对象属性名称

由于您所请求的是一个数组,其中包含一个对象,每个名称嵌套在该对象中,因此它看起来如下所示:

constpeopleobject=[“Adam”,“Eva”]。reduce((累加器对象,person)=>{
累加器对象[人]={};
返回累加器对象;
}, {});
console.log(peopleObject);
//{亚当:{},伊娃:{}
const peopleObjectInArray=[peopleObject];
console.log(peopleObjectInArray);

//[{Adam:{},Eva:{}]
,因为实际上,当您使用对象属性速记时,它会按字面意思取名称
man
,并在循环的每次迭代中覆盖该对象属性名称

由于您所请求的是一个数组,其中包含一个对象,每个名称嵌套在该对象中,因此它看起来如下所示:

constpeopleobject=[“Adam”,“Eva”]。reduce((累加器对象,person)=>{
累加器对象[人]={};
返回累加器对象;
}, {});
console.log(peopleObject);
//{亚当:{},伊娃:{}
const peopleObjectInArray=[peopleObject];
console.log(peopleObjectInArray);
//[{亚当:{},伊娃:{}]
让Adam={};
让Eva={};
设arr=[{}];
arr[0][“Adam”]=Adam;
arr[0][“Eva”]=Eva;
控制台日志(arr)
让Adam={};
让Eva={};
设arr=[{}];
arr[0][“Adam”]=Adam;
arr[0][“Eva”]=Eva;


控制台日志(arr)谢谢,我需要为一个可变数量的objects@anthnyprschka检查我的答案!谢谢,我需要为一个可变数量的objects@anthnyprschka检查我的答案
{man}
取名字
man
man
的值。到那时,它还不知道这个名字原来是
Adam
,所以你想要的是不可能的。你似乎误解了一件重要的事情,那就是
[Adam,Eva]
实际上并不包含
“Adam”
{man}
取名字
man
man
的值。到那时,它还不知道这个名字原来是
Adam
,所以你想要什么是不可能的。你似乎误解了一件重要的事情,那就是
[Adam,Eva]
实际上并没有包含
“Adam”
.Mh那么我该如何处理数组中数量可变的对象呢?这是不可能的,因为现在的方法是,将每个对象分配给一个变量,然后依赖这些变量名。这整件事确实是一个糟糕的方法,最好给每个对象一个“名称”或“id”最后,我的目标是动态地为“父”对象分配一个可变大小的对象列表,同时保留它们的变量名。我想我可以使用Object.assign(parentObj,…)让它以后能够在itMh上调用parentObj.childObj,那么我该如何处理数组中数量可变的对象呢?这是不可能的,因为你现在这样做的方式是,将每个单独的对象分配给一个变量,然后依赖这些变量名。这是一个很糟糕的方法,最好给每个对象一个“name”或“id”属性并使用它。最后,我的目标是动态地将一个可变大小的对象列表分配给一个“parent”对象,同时保留它们的变量名。我想我可以使用Object.assign(parentObj,…)使它能够在以后调用parentObj.childObj。这不起作用,它会生成一个包含1个对象的数组,而不是一个对象数组。@frodo2975仔细查看问题的正文。@frodo2975从OP中:我想要
[{Adam:{},Eva:{}}]
啊,对此感到抱歉,你是对的,我将OP的评论解释为他想要的输出,而不是他在底部发布的内容。这不起作用,它生成了一个包含1个对象的数组,而不是一个对象数组。@frodo2975仔细查看问题的正文。@frodo2975来自OP:我想要
[{Adam:{},Eva:{}]
啊,很抱歉,你是对的,我把OP的评论解释为他想要的输出,而不是他在底部发布的内容。