【问题标题】:javascript map object multidimensionjavascript地图对象多维
【发布时间】:2019-05-03 10:24:23
【问题描述】:

我有这个数据结构:

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
]

如何在 javascript 中的产品项目 isSelected: false 中添加新属性(ES5 或 ES6 都可以),以便对象

{
  "name": "jacket 01",
  "price": 100,
  "isSelected": false
}

?

【问题讨论】:

  • 需要遍历所有的数组才能找到每个产品。请展示您尝试过的内容。 Stackoverflow 不是免费的代码编写服务
  • 最快的方法是tree.categories[0].subCategories[0].products[0].isSelected = false,但你的问题不是很详细,所以我想这不是你想要的答案。
  • 这种回答我很想听。
  • 呃,就是这样。你有一堆嵌套数组。只需瞄准您需要的路径。
  • 我在考虑地图内的地图,但我想它无法完成

标签: javascript json dictionary object ecmascript-6


【解决方案1】:

它可能有用,它对我有用

tree.forEach(base => {
  base.categories.forEach(categories => {
    categories.Subcategories.forEach(subCategory =>{
      subCategory.products.forEach(product => product.isSelected = false)
    })
  });
});

【讨论】:

    【解决方案2】:

    是的,我应该使用嵌套的 foreach 深入到对象。我想出了这个:

    tree.categories.forEach(function (category) {
      category.subcategories.forEach(function (subcategory) {
        subcategory.products.forEach(function (product) {
            product.isSelected = false;
        })
      })
    })
    

    感谢赐教

    【讨论】:

      猜你喜欢
      • 2011-10-02
      • 2014-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-23
      • 2021-06-25
      • 2013-05-13
      相关资源
      最近更新 更多