对象迭代数组以获取键和值

时间:2018-07-12 19:59:43

标签: javascript typescript lodash

我有一个对象数组。我想从中有效地提取键及其值。

示例:

let data = [{'Car':'Honda'}, {'car':'Volvo'}];

我要把car作为键及其值分开。我怎样才能高效地实现这一目标(甚至使用lodash)?

4 个答案:

答案 0 :(得分:2)

您可以遍历数组并访问每个有问题的对象的键和属性值。

let data = [{
  'Car': 'Honda',
  'hello': 'hi'
}, {
  'car': 'Volvo'
}];

data.forEach((obj) => {
	Object.keys(obj).forEach((key) => {
  		console.log("key : " + key + " - value : " + obj[key]);
  });
});

lodash片段

let data = [{
  'Car': 'Honda',
  'hello': 'hi'
}, {
  'car': 'Volvo'
}];

_.forEach(data, (obj) => {
	_.forEach(Object.keys(obj), (key) => {
  		console.log("key : " + key + " - value : " + obj[key]);
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.core.min.js"></script>

答案 1 :(得分:1)

Object.entries https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries

const newArray = data.map((item) => Object.entries(item));
// [[['Car', 'Honda']], [['car', 'Volvo']]]

答案 2 :(得分:0)

您可以使用Object.entries(obj)遍历键和值。

data.forEach((obj) => 
Object.entries(obj).forEach(([key, value]) => 
console.log(key, value)));

let data = [{
  'Car': 'Honda',
  'hello': 'hi'
}, {
  'car': 'Volvo'
}];

data.forEach((obj) => 
Object.entries(obj).forEach(([key, value]) => 
console.log(key, value)));

答案 3 :(得分:0)

简单而简单的方法是:

var data = [{
  'Car': 'Honda'
}, {
  'Car': 'Volvo'
}];

var j = 0;
var carNames= [];
for (var i = 0; i < data.length; i++){
   var nameOfCar = data[i];
   if(nameOfCar.hasOwnProperty('Car')){
      carNames[j] = nameOfCar['Car'];
      j++;
   }
}


console.log(carNames);