JavaScript深度嵌套数组过滤

JavaScript深度嵌套数组过滤,javascript,arrays,Javascript,Arrays,我创建了一个功能强大的“深度”嵌套数组过滤功能。此功能将显示汽车,并为其指定了颜色“红色”。但是,“通过”过滤器的车辆是仅指定了1种颜色的车辆如何确保阵列中的阵列按条件进行检查?我需要在循环中创建一个循环吗?理想的结果是,如果标准设置为“红色”,它也将显示宝马和铃木,因为这些汽车也有这种颜色任何帮助、建议或到其他帖子的进一步链接,以达到预期的效果,我都将不胜感激,因为我自己找不到任何非常有用的东西。最有用的帖子是这篇——下面我附上了我当前代码的代码片段 const myCars=[ {名称:“



我创建了一个功能强大的“深度”嵌套数组过滤功能。此功能将显示汽车,并为其指定了颜色“红色”。但是,“通过”过滤器的车辆是仅指定了1种颜色的车辆
如何确保阵列中的阵列按条件进行检查?我需要在循环中创建一个循环吗?理想的结果是,如果标准设置为“红色”,它也将显示宝马和铃木,因为这些汽车也有这种颜色

任何帮助、建议或到其他帖子的进一步链接,以达到预期的效果,我都将不胜感激,因为我自己找不到任何非常有用的东西。最有用的帖子是这篇——

下面我附上了我当前代码的代码片段

const myCars=[
{名称:“宝马”,颜色:[“白色”、“红色”、“黑色”]},
{名称:“奥迪”,颜色:[“黄色”、“银色”]},
{名称:“大众”,颜色:[“紫色”、“金色”]},
{名称:“日产”,颜色:[“白色”、“黑色”]},
{名称:“铃木”,颜色:[“红色”]},
];
对于(我的车中的x){
var keys=Object.keys(myCars[x])
var carSpec=myCars.filter(函数(fltr){
返回(颜色=红色);
});
document.getElementById(“show1”).innerHTML+=carSpec[x]。name++“有以下颜色-”+carSpec[x]。color++“
”; }
车辆列表


您需要通过
包含
测试对
颜色
数组进行
过滤

const myCars=[
{名称:“宝马”,颜色:[“白色”、“红色”、“黑色”]},
{名称:“奥迪”,颜色:[“黄色”、“银色”]},
{名称:“大众”,颜色:[“紫色”、“金色”]},
{名称:“日产”,颜色:[“白色”、“黑色”]},
{名称:“铃木”,颜色:[“红色”]},
];
const show1=document.getElementById(“show1”);
我的车
.filter(({color})=>color.includes('Red'))
.forEach({name,color})=>{
show1.innerHTML+=name++“有以下颜色-“+color+”
”; });
车辆列表


您可以使用
reduce
获得一组红色可用的汽车,然后使用
forEach
在其上循环并显示文本

join
将通过分隔符连接数组的所有内容

const myCars=[{
名称:“宝马”,
颜色:[“白色”、“红色”、“黑色”]
},
{
名称:“奥迪”,
颜色:[“黄色”、“银色”]
},
{
名称:“大众”,
颜色:[“紫色”、“金色”]
},
{
名称:“日产”,
颜色:[“白色”、“黑色”]
},
{
名称:“铃木”,
颜色:[“红色”]
},
];
设hasRed=myCars.reduce(函数(acc,curr){
如果(当前颜色索引('Red')!=-1){
附件推送(当前)
}
返回acc;
},[])。forEach((项目)=>{
document.getElementById(“show1”).innerHTML++=item.name++“有以下颜色-”+item.color.join(“,”)+“
”; })
车辆列表


非常感谢您