Javascript 无法将我的对象转换为数组
大家好,我是新来的,我的第一个问题。 我有一个javascript问题无法解决。 我有一个从服务器获取的对象: 这就是目标:Javascript 无法将我的对象转换为数组,javascript,Javascript,大家好,我是新来的,我的第一个问题。 我有一个javascript问题无法解决。 我有一个从服务器获取的对象: 这就是目标: let tmp={“running”:{“valueType”:“stringValue”,“stringValue”:“sport_running”},“游泳”:{“stringValue”:“sport_游泳”,“valueType”:“stringValue”},“网球”:{“valueType”:“stringValue”,“stringValue”:“spor
let tmp={“running”:{“valueType”:“stringValue”,“stringValue”:“sport_running”},“游泳”:{“stringValue”:“sport_游泳”,“valueType”:“stringValue”},“网球”:{“valueType”:“stringValue”,“stringValue”:“sport_tennis”}
让tmpArray=Object.entries(tmp.map)([preference,rating])=>({preference,rating}));
控制台日志(tmpArray)代码>您需要手动循环对象,并为每个stringValue
返回所需的对象
在对象上使用循环,代码可能如下所示:
let tmp={“running”:{“valueType”:“stringValue”,“stringValue”:“sport_running”},“游泳”:{“stringValue”:“sport_游泳”,“valueType”:“stringValue”},“网球”:{“valueType”:“stringValue”,“stringValue”:“sport_tennis”}
让res=Object.keys(tmp.map)(o)=>{
返回{
首选:tmp[o].stringValue,
评级:“0”
};
});
控制台日志(res)代码>我猜您试图对对象执行的操作如下:
let res = Object
.entries(tmp)
.map(( [_, e] ) => ({prefer: e.stringValue, rating: "0" }) )
在.map(([[uu,e])=>
部分中,我们对对象.entries(tmp)
返回的数组进行解构,并仅使用它的第二个元素,该元素通过变量e
包含值
通过使用对象值
可以简化上述操作:
let res = Object
.values(tmp)
.map(e => ({prefer: e.stringValue, rating: "0" }) )
“但我不明白”-然后看看Object.entries()
做了什么和它返回了什么(以及为什么Object.values()
会是更好的选择),或者看看console.log(tmpArray)
调用的输出,并尝试找到“sport\u X”的位置
文本是。为什么你希望评级在中是0
。
?是的,谢谢你指出了这一点。这是一种复杂的方式……而不是对象。entries()
然后扔掉键([\ue]
)使用对象。值()
同意,我更新了示例