我有如下图所示的对象。
我想使用map()
检索对象,例如
{
"2643216":{pg:1,pt:1},
"1304681":{pg:1,pt:1}
}
这是我的代码。
Object.keys(obj).map(function(x){
return {obj[x].number:{'pg':obj[x].pg,'pt':obj[x].pt}}
})
但错误可能会出现在obj[x].number
处.
调试错误通知我对 : (colon)
的无知。 .
我是否犯了错误以及您可以建议的任何调整-
或者其他方式可以检索我想要的对象?
谢谢。
最佳答案
这应该可以完成工作:
function groupByNumber(data) {
return Object
.keys(data)
.reduce(function(result, key) {
var value = data[key];
result[value.number] = { pt: value.pt, pg: value.pg };
return result;
}, {});
};
var data = {
'LKB_something': { number: 1, pg: 1, pt: 5 },
'LKB_something_else': { number: 2, pg: 1, pt: 5 },
'LKB_something_else_1': { number: 3, pg: 1, pt: 5 },
};
console.log('result', groupByNumber(data));
// ES-NEXT would let you be more coincise
const groupByNumber = data => Object.values(data).reduce(
(result, { number, ...rest }) => ({ ...result, [number]: rest }),
{},
);
关于javascript - map() 返回与对象的值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57123929/