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

我有一个看起来与此类似的对象:


[

    {"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似乎是逻辑选择,但在这种情况下则不然。有任何想法吗?谢谢你。


大话西游666
浏览 222回答 2
2回答

守着一只汪

让我们从您提供的代码示例继续。1)获取每个元素的键for (let i in zk) {&nbsp; for (let j in zk[i]) {&nbsp; &nbsp; console.log(j)&nbsp; }}2)获取每个元素中的列表for (let i in zk) {&nbsp; for (let j in zk[i]) {&nbsp; &nbsp; console.log(zk[i][j])&nbsp; }}3)遍历每个元素中的每个列表for (let i in zk) {&nbsp; for (let j in zk[i]) {&nbsp; &nbsp; for (let k = 0; k < zk[i][j].length; k++) {&nbsp; &nbsp; &nbsp; console.log(zk[i][j][k])&nbsp; &nbsp; }&nbsp; }}或者,您可以使用Object.values,它返回每个键值对的值。您也可以考虑使用Array.map()。for (let i in zk) {&nbsp; Object.values(zk[i]).map(list => {&nbsp; &nbsp; list.map(element => {&nbsp; &nbsp; &nbsp; console.log(element);&nbsp; &nbsp; });&nbsp; });}

holdtom

您可以采用另一种方法来迭代给定的数组和对象,Array#forEach&nbsp;为了迭代数组,Object.entries&nbsp;用于获得包含键和值的数组以及一个解构键/值对数组的分配。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) =>&nbsp; &nbsp; Object.entries(object).forEach(([key, array]) =>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; array.forEach((value, innerIndex) =>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(outerIndex, key, innerIndex, value)&nbsp; &nbsp; &nbsp; &nbsp; )&nbsp; &nbsp; ));.as-console-wrapper { max-height: 100% !important; top: 0; }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript