Javascript 计算嵌套对象数

Javascript 计算嵌套对象数,javascript,Javascript,const json=[{ “命令”:1111, “项目”:[ { “颜色1”:“红色”, “颜色2”:“黄色”, }, { “颜色1”:“红色”, “颜色2”:“红色”, }, { “颜色1”:“红色”, “颜色2”:“红色”, } ] }, { “命令”:2222, “项目”:[ { “颜色1”:“黑色”, “颜色2”:“蓝色”, “颜色3”:“橙色” }, { “颜色1”:“白色”, “颜色2”:“红色”, “颜色3”:“绿色”, } ] }] Object.entries(json.fo

const json=[{
“命令”:1111,
“项目”:[
{
“颜色1”:“红色”,
“颜色2”:“黄色”,
},
{
“颜色1”:“红色”,
“颜色2”:“红色”,
},
{
“颜色1”:“红色”,
“颜色2”:“红色”,
}
]
},
{
“命令”:2222,
“项目”:[
{
“颜色1”:“黑色”,
“颜色2”:“蓝色”,
“颜色3”:“橙色”
},
{
“颜色1”:“白色”,
“颜色2”:“红色”,
“颜色3”:“绿色”,
}
]
}]
Object.entries(json.forEach([i,v])=>{
让计数=[];
Object.entries(v.items).forEach([j,k])=>{
如果(k.color2.包括('red')){
计数。推(k.2)
}
});
console.log(count,count.length)//length=[2,1]
});使用

const json=[{“order”:1111,“items”:[{“color1”:“red”,“color2”:“yellow”},{“color1”:“red”,“color2”:“red”},{“order”:2222,“items”:[{“color1”:“black”,“color2”:“blue”,“color3”:“orange”},{“color1”:“white”,“color2”:“red”,“color3”:“green”}]
const res=json.reduce((acc,order)=>{
让红色=order.items.filter(color=>color.color2=='red')
返回红色。长度?[…acc,红色。长度]:acc
}, [])
console.log(res)
使用

const json=[{“order”:1111,“items”:[{“color1”:“red”,“color2”:“yellow”},{“color1”:“red”,“color2”:“red”},{“order”:2222,“items”:[{“color1”:“black”,“color2”:“blue”,“color3”:“orange”},{“color1”:“white”,“color2”:“red”,“color3”:“green”}]
const res=json.reduce((acc,order)=>{
让红色=order.items.filter(color=>color.color2=='red')
返回红色。长度?[…acc,红色。长度]:acc
}, [])

console.log(res)
这里的效率可能不是最好的,但这是可以理解的代码:

let count = [];
json.forEach((order, index) => {
  count[index] = [];
  order.items.forEach((item) => {
    if (item.colour2 === "red") {
      count[index].push(item.colour2);
    }
  });
});
console.log(count);

这里的效率可能不是最好的,但这是可以理解的代码:

let count = [];
json.forEach((order, index) => {
  count[index] = [];
  order.items.forEach((item) => {
    if (item.colour2 === "red") {
      count[index].push(item.colour2);
    }
  });
});
console.log(count);

有多种方法可以解决此问题,但如果您只想获得“color2”:“red”。你也可以用这样的东西

让json=[{“顺序”:1111,“项目”:[{“颜色1”:“红色”、“颜色2”:“黄色”},{“颜色1”:“红色”、“颜色2”:“红色”},{“顺序”:2222,“项目”:[{“颜色1”:“黑色”、“颜色2”:“蓝色”、“颜色3”:“橙色”},{“颜色1”:“白色”、“颜色2”:“红色”、“颜色3”:“绿色”}]
让计数=[];
for(让我看看json){
count.push(JSON.stringify(i).match(/“color2”:“red”/g).length)
}

控制台日志(计数)解决此问题有多种方法,但如果您只想获得“color2”:“red”。你也可以用这样的东西

让json=[{“顺序”:1111,“项目”:[{“颜色1”:“红色”、“颜色2”:“黄色”},{“颜色1”:“红色”、“颜色2”:“红色”},{“顺序”:2222,“项目”:[{“颜色1”:“黑色”、“颜色2”:“蓝色”、“颜色3”:“橙色”},{“颜色1”:“白色”、“颜色2”:“红色”、“颜色3”:“绿色”}]
让计数=[];
for(让我看看json){
count.push(JSON.stringify(i).match(/“color2”:“red”/g).length)
}
控制台日志(计数)