[英]Lodash: Pick list of values from object into array with guaranteed order
我有一个看起来像的对象:
const myObject = {
foo: '000',
bar: '123',
baz: '456'
};
我想将myObject
的属性值的子集放入数组中。 我需要保留订购。
手动解决方案如下:
const values = [myObject.foo, myObject.baz];
一次尝试可能看起来像:
const values = _.values(_.pick(myObject, ['foo', 'baz']));
此解决方案不正确,因为pick
会创建一个新对象。 在新对象上调用_.values
将删除拾取数组中指定的顺序。
是否有一种简单的方法可以做到这一点?
您可以使用_.at()
以类似于_.pick()
方式获取数组:
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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.