Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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_Reactjs_Ecmascript 6 - Fatal编程技术网

Javascript 使用映射将数组转换为对象数组失败

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})); 控制台日志(结

我希望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}));

控制台日志(结果)我明白了。我必须检查arr是否为空吗
(arr | |[]).map(id=>({id}))
这样会更好吗?@doeyarik,什么意思是空的?如果数组中没有元素,则与
[]
相同。但是如果它是未定义的(或错误的),那么你需要一个检查,就像你已经做的一样。如果我不做检查会发生什么?它会坏吗?arr实际上是用户的输入。我会检查任何用户输入。不要信任用户。
const arr = ["a","b","c"]

arr.map(obj => {obj.id: obj})