我有一个如下所示的对象数组,试图仅映射某些键及其值以形成另一个数组对象。
下面是我对单个对象的尝试
const object1 = { app_id:35687,codesmell: 30, baz: 42 };
console.log(Object.entries(object1).map(x => {app_id:x.app_id}));
我总是不确定,一直在搜索mdn和stackoverflow无法找到解决方案。请帮忙。
我尝试的另一种尝试,这次是使用result
是对象数组的数组
T_BugDetails: result.data.map(x => Object.entries(x).reduce((a,b) => { a, b},{}))
答案 0 :(得分:7)
一些问题:
Object.entries
返回一个 arrays 数组(对象的键和值的数组)。如果您.map
是对象的entries
,则.map
的第一个参数应为键和值的数组,如下所示:
Object.entries(object1).map(([key, val]) => ...
要从箭头函数返回对象,请将对象的括号({
和}
)括在括号中,否则将被解释为普通的功能块内含label,而不是隐式返回的对象:
=> {app_id:x.app_id}
到
=> ({app_id:x.app_id})
app_id
组成的对象,则不要迭代原始对象的entries
,因为您只需要一个属性,而不是其所有属性属性-相反,只需提取原始对象的app_id
:
const object1 = { app_id:35687,codesmell: 30, baz: 42 };
const { app_id } = object1;
console.log(
{ app_id }
);
仅当您具有需要转换的对象的数组时,才使用.map
,例如:
const objects = [
{ app_id:35687,codesmell: 30, baz: 42 },
{ app_id:12345,codesmell: 20, baz: 52 }
];
console.log(
objects.map(({ app_id }) => ({ app_id }))
);