Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在数组中添加对象的键?_Javascript_Arrays_Object - Fatal编程技术网

Javascript 如何在数组中添加对象的键?

Javascript 如何在数组中添加对象的键?,javascript,arrays,object,Javascript,Arrays,Object,伙计们。 我有这样的数组 array = [{name:"A",data:"..."},{name:"B",data:"..."},{name:"C",data:"..."}] 我想把这个数组编辑成 array = [ "A":{name:"A",data:"..."},"B":{name:"B",data:"..."},"C":{name:"C",data:"..."} 如何从对象键自身的值设置对象键?尝试以下操作: console.log(array.map(el => ({[el

伙计们。 我有这样的数组

array = [{name:"A",data:"..."},{name:"B",data:"..."},{name:"C",data:"..."}]
我想把这个数组编辑成

array = [ "A":{name:"A",data:"..."},"B":{name:"B",data:"..."},"C":{name:"C",data:"..."}
如何从对象键自身的值设置对象键?

尝试以下操作:

console.log(array.map(el => ({[el.name]: el})));

要获取对象,可以使用映射的键/值对

var数组=[{name:“A”,数据:“…”},{name:“B”,数据:“…”},{name:“C”,数据:“…”},
结果=Object.fromEntries(array.map(o=>[o.name,o]);
控制台日志(结果)

.as控制台包装{max height:100%!important;top:0;}
JavaScript数组不能以这种方式工作。数组的索引值只能有递增的数字索引([0,1,…,n])。如果不想创建这样的列表,可以创建对象而不是数组

const数组=[{name:“A”,数据:“…”},{name:“B”,数据:“…”},{name:“C”,数据:“…”}];
const newList={};
array.forEach(obj=>{
newList[obj.name]=obj;
});
log({newList})就这么做吧

var arr=[{name:“A”,数据:“…”},{name:“B”,数据:“…”},{name:“C”,数据:“…”}]
var output=arr.map(elem=>({[elem.name]:elem}))

console.log(输出)
array=array.map(elem=>({[elem.name]:elem}))
您不能,因为
[“A”:{name:“A”,data:“…”}]
不是有效的数组(数组没有命名键)。你必须构造一个新的对象
{“a”:{name:“a”,data:“…”}
你确定,你想要一个具有属性的数组吗?你不应该创建对象而不是数组吗?哦,你们是对的。然后,我将创建它作为对象。非常感谢您的建议。或者,您可以对数组执行缩减,该数组为每个元素向累加器对象添加一个键/值对:
array.reduce((acc,curr)=>{acc[curr.name]=curr;return acc;},{})