Javascript 无法将我的对象转换为数组

Javascript 无法将我的对象转换为数组,javascript,Javascript,大家好,我是新来的,我的第一个问题。 我有一个javascript问题无法解决。 我有一个从服务器获取的对象: 这就是目标: let tmp={“running”:{“valueType”:“stringValue”,“stringValue”:“sport_running”},“游泳”:{“stringValue”:“sport_游泳”,“valueType”:“stringValue”},“网球”:{“valueType”:“stringValue”,“stringValue”:“spor

大家好,我是新来的,我的第一个问题。 我有一个javascript问题无法解决。 我有一个从服务器获取的对象:

这就是目标:

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
({preference,rating}));
?是的,谢谢你指出了这一点。这是一种复杂的方式……而不是
对象。entries()
然后扔掉键(
[\ue]
)使用
对象。值()
同意,我更新了示例