如何将对象数组的某些部分作为新数组?
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>
我有一个对象数组:
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>