我有一个看起来像的对象:
const myObject = {
foo: '000',
bar: '123',
baz: '456'
};
我想将myObject
属性值的子集放入数组中。我需要保留订购。
手动解决方案如下:
const values = [myObject.foo, myObject.baz];
一次尝试可能如下:
const values = _.values(_.pick(myObject, ['foo', 'baz']));
此解决方案不正确,因为pick
会创建一个新对象。在新对象上调用_.values
将删除在拾取的数组中指定的顺序。
有没有一种简单的方法可以做到这一点?
答案 0 :(得分:7)
您可以使用与_.pick()
类似的_.at()
来获取数组:
const myObject = {
foo: '000',
bar: '123',
baz: '456'
};
const array = _.at(myObject, ['foo', 'bar', 'baz']);
console.log(array);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
或者你可以在vanilla JS中使用Array#map:
const myObject = {
foo: '000',
bar: '123',
baz: '456'
};
const array = ['foo', 'bar', 'baz'].map((key) => myObject[key]);
console.log(array);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>