JavaScript从嵌套对象获取值

JavaScript从嵌套对象获取值,javascript,object,for-loop,nested,nested-loops,Javascript,Object,For Loop,Nested,Nested Loops,如果这是我的目标: var obj = { bakery1: { small: { name: "Small cookie", price: 0.75; } large: { name: "Large cookie", price: 3.00; } } bakery2: { small: { name: "Small cookie", price: 1.00;

如果这是我的目标:

var obj = {
bakery1: {
    small: {
        name: "Small cookie",
        price: 0.75;
    }
    large: {
        name: "Large cookie",
        price: 3.00;
    }
}
bakery2: {
    small: {
        name: "Small cookie",
        price: 1.00;
    }
    large: {
        name: "Large cookie",
        price: 4.00;
    }
}
};
我如何进行循环,将每个价格打印到控制台

当这个值被打印出来时,有没有办法追踪这个名字

例如,如果输出为3.00,我将如何制作一个函数,使我的名字与3.00的价格相匹配


提前谢谢

运行它,看看它是如何工作的

var obj={
第1条:{
小型:{
名称:“小饼干”,
价格:0.75
},
大型:{
名称:“大饼干”,
价格:3.00
}
},
bakery2:{
小型:{
名称:“小饼干”,
价格:1.00
},
大型:{
名称:“大饼干”,
价格:4.00
}
}
};
Object.keys(obj.map)((名称)=>{
Object.keys(obj[name]).map((type)=>document.write(`${name}-${type}-${obj[name][type].name}-${obj[name][type].price}
`)
})
运行它,看看它是如何工作的

var obj={
第1条:{
小型:{
名称:“小饼干”,
价格:0.75
},
大型:{
名称:“大饼干”,
价格:3.00
}
},
bakery2:{
小型:{
名称:“小饼干”,
价格:1.00
},
大型:{
名称:“大饼干”,
价格:4.00
}
}
};
Object.keys(obj.map)((名称)=>{
Object.keys(obj[name]).map((type)=>document.write(`${name}-${type}-${obj[name][type].name}-${obj[name][type].price}
`)
})
要回答您的问题:

函数打印价格(obj){
if(目标价格)
console.log(obj.name,obj.price)
其他(输入obj)
打印价格(obj[键])
}
var obj={
“面包1”:{
“小”:{
“名称”:“小饼干”,
“价格”:0.75
},
“大”:{
“名称”:“大饼干”,
“价格”:3
}
},
“bakery2”:{
“小”:{
“名称”:“小饼干”,
“价格”:1
},
“大”:{
“名称”:“大饼干”,
“价格”:4
}
}
};

printPrice(obj)
回答您的问题:

函数打印价格(obj){
if(目标价格)
console.log(obj.name,obj.price)
其他(输入obj)
打印价格(obj[键])
}
var obj={
“面包1”:{
“小”:{
“名称”:“小饼干”,
“价格”:0.75
},
“大”:{
“名称”:“大饼干”,
“价格”:3
}
},
“bakery2”:{
“小”:{
“名称”:“小饼干”,
“价格”:1
},
“大”:{
“名称”:“大饼干”,
“价格”:4
}
}
};
printPrice(obj)
递归函数

function objSearch(serObj){
    // For loop through the object.
    for( prop in serObj ){
        // If the property is price get the price.
        if(prop === 'price'){
            // Got the price property now return the value of price.
            console.log('I have price...', prop, '=', serObj[prop]);
            // If the property is an object send it through the function again.
        } else if(typeof serObj[prop] === 'object'){  
            // Pass the nested object.
            objSearch(serObj[prop]);
        }
    }
}

objSearch(obj);
递归函数

function objSearch(serObj){
    // For loop through the object.
    for( prop in serObj ){
        // If the property is price get the price.
        if(prop === 'price'){
            // Got the price property now return the value of price.
            console.log('I have price...', prop, '=', serObj[prop]);
            // If the property is an object send it through the function again.
        } else if(typeof serObj[prop] === 'object'){  
            // Pass the nested object.
            objSearch(serObj[prop]);
        }
    }
}

objSearch(obj);

你能用你的代码来解释吗?你能用你的代码来解释吗?