我有一个带有很多键的对象,我想按一定的顺序将一些相应的值放入数组中。
为了获得这些值,我可以使用解构法,例如
const obj = { foo: 1, bar: 3, baz: 2, other: 666, keys: "here" };
const { foo, bar, baz } = obj;
const array = [ foo, bar, baz ]; // 1, 3, 2
当然,我可以用很多方法来实现我的目标,比如不解构:
const array = [ obj.foo, obj.bar, obj.baz ]; // 1, 3, 2
或者将这些键作为数组并对其进行映射。
const array = ["foo", "bar", "baz"].map( v => obj[v] )
但是有没有更简单的方法呢?
例如,在 Perl 中,是简单的快捷方式:
my %obj = (foo => 1, baz => 3, bar => 2);
my @arr = @obj{ ('foo','bar','baz') }; # 1, 3, 2
相反,
('foo','bar','baz')
在这里我实际上可以使用任何返回这些键列表作为对象(哈希)选择器的语句。
我无法在 JS 中找出类似的东西。