如何将对象数组的某些部分作为新数组?

How to get certain part of object array as a new array?

我有一个对象数组:

let products = [{ code: 'a', num: 1 }, { code: 'b', num: 2 }];

我想要获取 codes 数组:['a', 'b'].

这就是我现在使用 lodash 的方式:

let codes = [];
_.forEach(products, (product) => {
  codes.push(product.code);
});

有什么聪明的方法可以做到这一点吗?

是的,有一个纯粹的JavaScript解决方案:

let codes = products.map(obj => obj.code);

使用原版 JavaScript Array.map

var arr = [{ code: 'a', num: 1 }, { code: 'b', num: 2 }];

var newArr = arr.map(function(obj){
  return obj.code;

})

console.log(newArr)

   var arr = [{
     code: 'a',
     num: 1
   }, {
     code: 'b',
     num: 2
   }];

   var newArr = arr.map(function(obj) {
     return obj.code;

   })

    console.log(newArr)

你可以使用 map() 作为 lodash:

let codes = _.map(products, 'code');

let products = [{ code: 'a', num: 1 }, { code: 'b', num: 2 }];

let codes = _.map(products, 'code');

document.write('<pre>' + JSON.stringify(codes, 0, 4) + '</pre>');
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.12.0/lodash.js"></script>