Javascript 过滤嵌套对象数组

Javascript 过滤嵌套对象数组,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,如何过滤这种数组?我想根据我下面的情况进行筛选 想法: 将嵌套数组展平为简单数组 从简单数组中筛选结果 方法一:快速简洁 const result = [].concat(...input).filter(item => item.startDate === formatCalendarDates); 方法二:使用库(如Ramda)将其展平 R.flatten(data).filter(item => item.key === 'a'); 看现场结果 方法三:手动操作:

如何过滤这种数组?我想根据我下面的情况进行筛选

想法:

  • 将嵌套数组展平为简单数组
  • 从简单数组中筛选结果
方法一:快速简洁

const result = [].concat(...input).filter(item =>  item.startDate === formatCalendarDates);
方法二:使用库(如Ramda)将其展平

R.flatten(data).filter(item => item.key === 'a');
看现场结果

方法三:手动操作:

const data=[
[
{键:'a',值:1},
{键:'b',值:2},
{键:'c',值:3},
{键:'a',值:4},
{键:'b',值:5},
{键:'a',值:6}
], [
{键:'b',值:7},
{键:'b',值:8},
{键:'a',值:9}
], [
{键:'c',值:10},
{键:'b',值:11},
{键:'b',值:12}
]
];
常数平坦=数据=>{
让输出=[];
map(arr=>output=[…arr,…output]);
返回输出;
}
const result=flat(data).filter(item=>item.key=='a');
控制台日志(结果)有关更多信息,请参见和

//输入。
const employees=[{id:'4930'}],{id:'4328'}]]
//谓词。
const matchingIdPredicate=(employee,id)=>employee.id==id
//过滤器。
const employeesWithMatchingId=employees.flat(1.filter)(employee=>matchingIdPredicate(employee,'4930'))
//证明。

console.log('Employees with matching id:',employeesWithMatchingId)
您知道什么比在问题中添加数据图片更好吗?将一些数据放在问题中-看起来您有一个嵌套数组,因此您需要过滤第二级数组,而不是第一级数组。查看所需输出的示例会有所帮助。另外,您所附代码的状态如何?它是否没有完成,或者输出的格式与您预期的不同?感谢您的回答。我已经从大卫的回答中得到了
R.flatten(data).filter(item => item.key === 'a');