const json = [{
"order": 1111,
"items": [
{
"colour1": "red",
"colour2": "yellow",
},
{
"colour1": "red",
"colour2": "red",
},
{
"colour1": "red",
"colour2": "red",
}
]
},
{
"order": 2222,
"items": [
{
"colour1": "black",
"colour2": "blue",
"colour3": "orange"
},
{
"colour1": "white",
"colour2": "red",
"colour3": "green",
}
]
}]
Object.entries(json).forEach(([i, v]) => {
let count = [];
Object.entries(v.items).forEach(([j, k]) => {
if (k.colour2.includes('red')) {
count.push(k.colour2)
}
});
console.log(count, count.length) //length = [2, 1]
});
I feel like this code I wrote isn't an efficient way to filter and count length. The goal is to filter a certain value and get the result. Looking for an alternative way and proper es6 way to do it. Thanks