Javascript从存储在索引中的数组内的对象获取键

时间:2019-04-23 06:15:40

标签: javascript arrays object ecmascript-6

我在数组中有一个带有键值对的对象:

error : [ { firstName : true },
          { lastName : false },
          { email : true }
        ]

我想从对象中获取密钥。

我尝试过,但这将在输出中显示未定义

let result = error.map((row, index) => { 
          console.log("key" + row[0] + " index " + index);
}

enter image description here

2 个答案:

答案 0 :(得分:1)

使用Object.keys

 

const obj = {
error : [ { firstName : true },
      { lastName : false },
      { email : true }
    ]
}

const keys = obj.error.flatMap(Object.keys);

console.log(keys);
 

对于较旧的浏览器,您可能需要它:

 

const obj = {
error : [ { firstName : true },
      { lastName : false },
      { email : true }
    ]
}

const keys = obj.error.map(Object.keys).reduce((acc, curr) => acc.concat(curr));

console.log(keys);
 

答案 1 :(得分:0)

map()Object.keys()一起使用:

var data = {
  error: [{
      firstName: true
    },
    {
      lastName: false
    },
    {
      email: true
    }
  ]
};
var keys = data.error.map(e => Object.keys(e)[0]);;
console.log(keys);

或通过传播语法使用forEach()

var data = {
  error: [{
      firstName: true,
      address: false
    },
    {
      lastName: false
    },
    {
      email: true
    }
  ]
};
var keys = [];
data.error.forEach(e => keys = [...keys, ...Object.keys(e)]);;
console.log(keys);