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;},{})