我想获取一个Javascript对象并将其转换为哈希数组。
以下方法仅获取对象的一个元素并将其转换为数组:
const coordinatesArray = items.map((item) => item.latitude)
返回:[51.5165328979492, 51.5990409851074, 51.5990409851074, 51.5165328979492, 51.5098190307617, 51.5128326416016, 51.5098190307617, 51.501766204834, 51.514087677002, 51.4983825683594, 51.5294952392578, 51.5123977661133, 51.5011863708496, 51.5204887390137, 51.514087677002, 51.5117797851562, 51.5139465332031]
但是当我尝试创建哈希元素组成数组时,出现错误:
const coordinatesArray = items.map((item) => { x:item.latitude, y:item.longitude })
返回:Uncaught Error: Module build failed: SyntaxError: Unexpected token, expected ;
我在做什么错了?
答案 0 :(得分:3)
您需要在花括号周围加上一些括号,否则它将在arrow functions中解释为block语句。
const coordinatesArray = items.map((item) => ({ x: item.latitude, y: item.longitude }));
具有破坏性和较短属性的短毛绒
const coordinatesArray = items.map(({ latitude: x, longitude: y }) => ({ x, y }));
答案 1 :(得分:3)
尝试以下操作:
const coordinatesArray = items.map((item) => ({ x:item.latitude, y:item.longitude }))
返回对象的Lambda函数需要一个额外的括号集()来将它们与函数体区分开。
答案 2 :(得分:0)
解析函数主体以返回对象文字表达式:
params => ({foo: bar})
在您的情况下:
const coordinatesArray = items.map((item) => ({ x:item.latitude, y:item.longitude }))
更多信息here。