Javascript 使用映射将数组转换为对象数组失败
我希望arr可以变成Javascript 使用映射将数组转换为对象数组失败,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我希望arr可以变成[{id:“a”},{id:“b”},{id:“c”}],但我在地图中的obj.id处出错,我的错误是什么?返回对象时应该使用额外的括号。因此,您的代码将是 const arr=[“a”、“b”、“c”] 常数a=arr.map((obj,i)=>({ [i] :obj })) log(a)您可以对返回对象使用括号,而只使用变量id,该变量解析为具有键id的对象 让arr=[“a”、“b”、“c”], result=arr.map(id=>({id})); 控制台日志(结
[{id:“a”},{id:“b”},{id:“c”}]
,但我在地图中的obj.id
处出错,我的错误是什么?返回对象时应该使用额外的括号。因此,您的代码将是
const arr=[“a”、“b”、“c”]
常数a=arr.map((obj,i)=>({
[i] :obj
}))
log(a)
您可以对返回对象使用括号,而只使用变量id
,该变量解析为具有键id
的对象
让arr=[“a”、“b”、“c”],
result=arr.map(id=>({id}));
控制台日志(结果)代码>我明白了。我必须检查arr是否为空吗(arr | |[]).map(id=>({id}))
这样会更好吗?@doeyarik,什么意思是空的?如果数组中没有元素,则与[]
相同。但是如果它是未定义的(或错误的),那么你需要一个检查,就像你已经做的一样。如果我不做检查会发生什么?它会坏吗?arr实际上是用户的输入。我会检查任何用户输入。不要信任用户。
const arr = ["a","b","c"]
arr.map(obj => {obj.id: obj})