gpt4 book ai didi

javascript - 如何访问另一个对象中的对象属性

转载 作者:行者123 更新时间:2023-11-30 11:29:25 27 4
gpt4 key购买 nike

我有一个看起来像这样的结构:

Customer {
name: 'jen',
options:
[ Order {
_price: 11,
_option: 'vegan',
_name: 'V for Vegan',
_ingredients:
[ Ingredient { name: 'mint', price: 0.5 },
Ingredient { name: 'peanuts', price: 0.5 } ] },
Order {
_price: 11,
_option: 'vegetarian',
_name: 'Veggie',
_ingredients: [] } ] }

我很难注销这部分:

_ingredients:
[ Ingredient { name: 'mint', price: 0.5 },
Ingredient { name: 'peanuts', price: 0.5 } ] },

我可以退出:

Options: vegan
[object Object],[object Object]

Options: vegetarian

但我希望它是这样的

Options: vegan
mint, peanuts

我的最后一次尝试是遍历 _ingredients 但它返回未定义。到目前为止我的代码:

getBill() {
let totalPrice = 0;

console.log(`
Your current bill:
`)

this.options.forEach((i) => {
console.log(`
Option: ${i._option}
Extra Ingredients: ${i._ingredients.forEach((j) => {j.name})}
`)
totalPrice += i._price;
})

console.log(`
Total Price: ${totalPrice} $
`)
}

最佳答案

这是一个 JavaScript 函数错误 forEach实际上并没有返回任何有用的东西。如果您阅读文档,您会看到返回值被明确指定为 undefined,这就是您可能得到的结果。您需要对此做一些事情,例如将它们加入到一起。

Extra Ingredients: ${i._ingredients.map(_i => _i.name).join(', ')}

使用 LodashUnderscore会给你一个 map 函数,它也接受一个字符串:

Extra Ingredients: ${_.map(i._ingredients, 'name').join(', ')}

这实际上返回了您想要的值,它提取了 name 属性,然后您可以使用 join 对其进行修饰,将其组合成一个井-形成的字符串列表。

关于javascript - 如何访问另一个对象中的对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46803317/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com