为了账号安全,请及时绑定邮箱和手机立即绑定

如何遍历数组字典(不知道键名)

如何遍历数组字典(不知道键名)

大话西游666 2021-04-15 13:14:47
我有一个看起来与此类似的对象:[    {"key1": ["2019-04-12-14:54:29.190", "19", "0", "4325", "1"]},    {"key2": ["2019-04-12-14:54:29.191", "20", "0", "2212", "1"]},    {"key3": ["2019-04-12-14:54:29.192", "22", "0", "4376", "0"]}]但是,我不知道键的名称(即,我不知道key1,key2和key3的名称)。这篇文章几乎正是我想要的,除了该方法需要您知道键的名称。我需要能够遍历键名及其值数组。我已经试过了:for (var i in zk) {    for (var j in zk[i]) {        console.log(j)    }}但这仅会打印键名。我如何也可以遍历列表?在大多数语言中,遍历j似乎是逻辑选择,但在这种情况下则不然。有任何想法吗?谢谢你。
查看完整描述

2 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

让我们从您提供的代码示例继续。


1)获取每个元素的键


for (let i in zk) {

  for (let j in zk[i]) {

    console.log(j)

  }

}

2)获取每个元素中的列表


for (let i in zk) {

  for (let j in zk[i]) {

    console.log(zk[i][j])

  }

}

3)遍历每个元素中的每个列表


for (let i in zk) {

  for (let j in zk[i]) {

    for (let k = 0; k < zk[i][j].length; k++) {

      console.log(zk[i][j][k])

    }

  }

}

或者,您可以使用Object.values,它返回每个键值对的值。您也可以考虑使用Array.map()。


for (let i in zk) {

  Object.values(zk[i]).map(list => {

    list.map(element => {

      console.log(element);

    });

  });

}


查看完整回答
反对 回复 2021-04-29
?
holdtom

TA贡献1805条经验 获得超10个赞

您可以采用另一种方法来迭代给定的数组和对象,

var data = [{ key1: ["2019-04-12-14:54:29.190", "19", "0", "4325", "1"] }, { key2: ["2019-04-12-14:54:29.191", "20", "0", "2212", "1"] }, { key3: ["2019-04-12-14:54:29.192", "22", "0", "4376", "0"] }];


data.forEach((object, outerIndex) =>

    Object.entries(object).forEach(([key, array]) => 

        array.forEach((value, innerIndex) => 

            console.log(outerIndex, key, innerIndex, value)

        )

    )

);

.as-console-wrapper { max-height: 100% !important; top: 0; }


查看完整回答
反对 回复 2021-04-29
  • 2 回答
  • 0 关注
  • 221 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信