如何遍历ES6中的对象数组

时间:2019-01-04 14:00:57

标签: javascript ecmascript-6

尝试使用es6迭代对象数组,因为这对我来说是很新的

这是我的对象数组

[j]
0: j
$extCollectionIndex: 0
data: {ID: "b7f7ce8b-1455-41b3-ac26-b54916f6718f", userId: "444441", userName: "cjtest.1", email: "cjtest@gmail.com",  …}

需要返回或使用控制台用户名

我刚刚尝试过(找到地图)

let obj = records.map(obj => {return obj.data});

console.log(obj)//[object,object]

有人可以帮我吗

3 个答案:

答案 0 :(得分:2)

Array.prototype.map将返回一个新数组。如果返回obj.data,则将有一个对象数组。 您需要对所需的数据更加具体。

let obj = records.map(obj => obj.data.userName );

答案 1 :(得分:1)

只需在map而不是record.data.userName上使用record.data函数,然后就可以使用join将其打印出来。或使用内部带有console.log的forEach循环。

工作示例:

function foo(){
  const records = [
      {
          "data": {
              "ID": "b7f7ce8b-1455-41b3-ac26-b54916f6718f",
              "userId": "444441",
              "userName": "cjtest.1",
              "email": "cjtest@gmail.com"
          }
      },
      {
          "data": {
              "ID": "b7f7ce8b-1455-41b3-ac26-b54916f6718f",
              "userId": "444441",
              "userName": "srtkjrthrt",
              "email": "cjtest@gmail.com"
          }
      },
      {
          "data": {
              "ID": "b7f7ce8b-1455-41b3-ac26-b54916f6718f",
              "userId": "444441",
              "userName": "srthstrj",
              "email": "cjtest@gmail.com"
          }
      },
      {
          "data": {
              "ID": "b7f7ce8b-1455-41b3-ac26-b54916f6718f",
              "userId": "444441",
              "userName": "cjghj1",
              "email": "cjtest@gmail.com"
          }
      }
  ]
  const userList = records.map(record => record.data.userName)
  console.log(userList.join(', '))
}

foo()

答案 2 :(得分:0)

这是输出

let obj = records.map(obj => {return obj.data.username});

console.log(obj)//cjtest.1

谢谢@Weedoze @gaetanoM