javascript - 输出嵌套数组,输出键而不输出内容?

标签 javascript

读完这篇文章后SO post我的数据结构循环仍然存在问题:

users:
 {
   'names': ['john','chris'],
   'addresses': ['10 king street', '20 king street'],
 }

循环:

for (const prop in this.payload) {
      console.log(prop); //names

      for (const item of prop) {
           console.log(item); //n //a //m //e //s
      }
 }

它似乎正在输出键“名称”的字母,然后对其他键执行相同的操作。

为什么?预期输出为:

names
john
chris
addresses
10 king street
20 king street

最佳答案

prop 是一个字符串。如果您循环遍历一个字符串,您将循环遍历它的字符,这就是您所看到的。

相反,获取该属性名称引用的值,并循环该值:

this.payload = {
  'names': ['john', 'chris'],
  'addresses': ['10 king street', '20 king street'],
};

for (const prop in this.payload) {
  console.log(prop); //names

  for (const item of this.payload[prop]) {
    console.log(item);
  }
}

更好的是,使用Object.entries():

this.payload =  {
   'names': ['john','chris'],
   'addresses': ['10 king street', '20 king street'],
};

for (const [prop, items] of Object.entries(this.payload)) {
    console.log(prop);
    
    for (const item of items) {
        console.log(item);
    }
}

或者,如果您不关心属性名称,则可以使用 Object.values()

关于javascript - 输出嵌套数组,输出键而不输出内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48489795/

相关文章:

javascript - 如何通过 JavaScript 在新浏览器窗口中仅打开外部链接?

javascript - 如何使用 JSON 多维数组进行编码

javascript - 如何以非常具体的方式 chop 字符串

javascript - 将 mongoDB 文档数据存储为变量

Javascript 'Promise' 如何进行同步

javascript - 在 href 上触发 2 个事件?滚动到顶部,然后加载

javascript - 更改文本背景荧光笔

javascript - 我如何在 javascript 对象中查找和计算重复值

javascript - 使用 .target.innerHTML 时我的输入总是返回 0

javascript - react native 如何处理对象和数组?