у меня есть эта структура данных:
tree = [
{
"name": "Men Section",
"categories": [
{
"name": "Clothings",
"Subcategories": [
{
"name": "Jackets",
"products": [
{
"name": "jacket 01",
"price": 100
},
{
"name": "jacket 02",
"price": 140
},
// ..and so on
]
]
},
// ..and so on
]
} // ..and so on
]
как я могу добавить новое свойство в товар isSelected: false в javascript (ES5 или ES6 в порядке), чтобы объект был
{
"name": "jacket 01",
"price": 100,
"isSelected": false
}
?
Самый быстрый метод - tree.categories[0].subCategories[0].products[0].isSelected = false, но ваш вопрос не очень детализирован, поэтому я полагаю, что это не тот ответ, который вам нужен.
такой ответ я хотел бы услышать.
Э-э, вот и все. У вас есть множество вложенных массивов. Просто выберите нужный путь.
я думал о карте внутри карты, но я думаю, что это невозможно сделать
Если ваш вопрос отличается от «Я хочу обновить первый объект в массиве продуктов первого элемента в массиве subCategories первого элемента в массиве продуктов», вам необходимо повторно отредактировать свой вопрос с более подробной информацией, используя минимальный воспроизводимый пример .



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Может быть полезно, у меня работает
tree.forEach(base => {
base.categories.forEach(categories => {
categories.Subcategories.forEach(subCategory =>{
subCategory.products.forEach(product => product.isSelected = false)
})
});
});
так что да, я должен пройти глубоко к объекту с вложенным foreach. я придумал это:
tree.categories.forEach(function (category) {
category.subcategories.forEach(function (subcategory) {
subcategory.products.forEach(function (product) {
product.isSelected = false;
})
})
})
спасибо за просветление
Чтобы добраться до каждого продукта, необходимо перебрать все массивы. Покажите, пожалуйста, что вы пробовали. Stackoverflow - это не бесплатный сервис для написания кода