Javascript 如何从一个对象数组的多个键中获取所有值?

Javascript 如何从一个对象数组的多个键中获取所有值?,javascript,ecmascript-6,ecmascript-5,Javascript,Ecmascript 6,Ecmascript 5,我需要从一个对象数组的多个键中获取值 trip = [ {sp: 'cbe', ep: 'tpr'}, {sp: 'tpr', ep: 'erd'}, {sp: 'erd', ep: 'blr'} ]; 输出应为[“cbe”、“tpr”、“erd”、“blr”] 我尝试的是作为一个答案发布的,它的工作,但我使用了两个地图,以获得所需的输出。我知道应该有比我的答案更好的方法 这是我的闪电战 const trip=[ {sp:'cbe',ep:'tpr'}, {sp:'

我需要从一个对象数组的多个键中获取值

trip = [
    {sp: 'cbe', ep: 'tpr'}, 
    {sp: 'tpr', ep: 'erd'}, 
    {sp: 'erd', ep: 'blr'}
];
输出应为
[“cbe”、“tpr”、“erd”、“blr”]

我尝试的是作为一个答案发布的,它的工作,但我使用了两个地图,以获得所需的输出。我知道应该有比我的答案更好的方法

这是我的闪电战

const trip=[
{sp:'cbe',ep:'tpr'},
{sp:'tpr',ep:'erd'},
{sp:'erd',ep:'blr'}
];
常数r=trip.map(m=>{
返回m.sp
});
常数s=trip.map(m=>{
返回m.ep
});
console.log(Array.from)(新集合(r.concat))
const trip=[
{sp:'cbe',ep:'tpr'},
{sp:'tpr',ep:'erd'},
{sp:'erd',ep:'blr'}
];
常数r=trip.map(m=>{
返回m.sp
});
常数s=trip.map(m=>{
返回m.ep
});

console.log(Array.from)(新集合(r.concat))如果您对没有那么多可读性的一行代码感到满意

trip=[{
sp:‘cbe’,
ep:‘tpr’
},
{
sp:‘tpr’,
ep:‘erd’
},
{
sp:‘erd’,
ep:‘blr’
}
];
const res=[…新集合([].concat.apply([],trip.map(item=>Object.values(item)))];

控制台日志(res)如果您对没有那么多可读性的一行代码感到满意

trip=[{
sp:‘cbe’,
ep:‘tpr’
},
{
sp:‘tpr’,
ep:‘erd’
},
{
sp:‘erd’,
ep:‘blr’
}
];
const res=[…新集合([].concat.apply([],trip.map(item=>Object.values(item)))];
控制台日志(res)此处可以使用新功能,但请注意浏览器支持有限
trip=[
{sp:'cbe',ep:'tpr'},
{sp:'tpr',ep:'erd'},
{sp:'erd',ep:'blr'}
];
res=[…新集合(trip.flatMap(Object.values))]
console.log(res)
此处可以使用新功能,但请注意浏览器支持有限
trip=[
{sp:'cbe',ep:'tpr'},
{sp:'tpr',ep:'erd'},
{sp:'erd',ep:'blr'}
];
res=[…新集合(trip.flatMap(Object.values))]
log(res)
还有另一种方法:(更新为聚合所有键而不是显式键)

const trip=[
{sp:'cbe',ep:'tpr'},
{sp:'tpr',ep:'erd'},
{sp:'erd',ep:'blr'}
];
常数t=数组起始(trip.reduce)(a,el)=>{
对于(让输入el)a,添加(el[key]);
返回a;
},新集合());
控制台日志(t)还有另一种方法:(更新为聚合所有键而不是显式键)

const trip=[
{sp:'cbe',ep:'tpr'},
{sp:'tpr',ep:'erd'},
{sp:'erd',ep:'blr'}
];
常数t=数组起始(trip.reduce)(a,el)=>{
对于(让输入el)a,添加(el[key]);
返回a;
},新集合());

控制台日志(t)
我认为您不需要显式地向
集合提供空数组。此外,这里的最终结果将是一个
集合
而不是一个数组。您可以使用
Array.from(trip.reduce…
)来解决这个问题。我认为您不需要显式地向
集合提供空数组。此外,这里的最终结果将是一个
集合
而不是一个数组。你可以用数组来解决这个问题。从(trip.reduce…
。你能告诉我flatmap是做什么的吗?@anonymous只需按照答案中的链接就可以了!你能告诉我flatmap是做什么的吗?@anonymous只需按照答案中的链接进行操作!