代码之家  ›  专栏  ›  技术社区  ›  Stacy Thompson

检查子数组分组所依据的主键值

  •  0
  • Stacy Thompson  · 技术社区  · 7 年前

    {
    "cat1":[
            {"id":"1","name":"SomeName", "category":"cat1"},
            {"id":"15","name":"SomeName2", "category":"cat1"}
        ],
    "cat2":[
            {"id":"12","name":"Somename3", "category":"cat2"}
        ],
    "cat3":[
            {"id":"18","name":"SomeName4", "category":"cat3"}
        ]
    }
    

    如何检查其分组所依据的主组。所以我可以先渲染cat2,然后再渲染其他类别。

    1 回复  |  直到 7 年前
        1
  •  0
  •   marzelin    7 年前

    Object.keys() 返回对象的所有可枚举键。

    你也可以使用 Object.entries() 这将为您提供一个数组,其中每个项 [key, value]

    const data = {
    "cat1":[
            {"id":"1","name":"SomeName", "category":"cat1"},
            {"id":"15","name":"SomeName2", "category":"cat1"}
        ],
    "cat2":[
            {"id":"12","name":"Somename3", "category":"cat2"}
        ],
    "cat3":[
            {"id":"18","name":"SomeName4", "category":"cat3"}
        ]
    }
    
    const delayed = [];
    
    for(const [name, value] of Object.entries(data)) {
      if (name === "cat2") {
        console.log(value); // first log cat2
        continue;
      }
      delayed.push(value); // the rest will be put to delayed array
    }
    
    delayed.forEach(console.log.bind(console)); // log remaining items

    另一种方法是使用对象分解 cat2 从对象开始,首先使用它,然后对其余的执行任何操作:

    const { cat2, ...rest } = obj;