繁体   English   中英

Lodash:从保证订单的对象到数组中选择值列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM