将对象分解为数组

时间:2019-10-22 16:15:46

标签: javascript destructuring

我有这个对象

const foo = {
    a: 'kitten',
    b: 'puppy',
    c: 'lion'
};

将其解构为变量

const { a, b, c } = foo;

是否有一种方法可以将其解译为数组,以便结果

const array = [a, b, c];

4 个答案:

答案 0 :(得分:1)

据我所知,没有使用分解的“单一流水线”。

您可以改用其中一种(不要使用解构):

(1)

const array = [foo.a, foo.b, foo.c]

(2,@ Sebastian Simon指出)

const array = Object.values(foo);

(@ Sebastian Simon指出的3)

const array = ['a', 'b', 'c'].map(k => foo[k]);

答案 1 :(得分:0)

您可以使用一个函数,解构所需的属性并返回具有所需顺序的数组。

const
    getABC = ({ a, b, c }) => [a, b, c],
    foo = { a: 'kitten', b: 'puppy', c: 'lion' };

console.log(getABC(foo));

答案 2 :(得分:0)

没有将对象从数组中解构成一个数组。

但是,如果您希望对象的所有键/值都采用数组格式,则可以使用以下这些键:

let obj = {
    a: 'kitten',
    b: 'puppy',
    c: 'lion'
};

let keyArray = Object.keys(obj); 
// keyArray = ['a','b','c']
let valuesArray = Object.values(obj);
// valuesArray = ['kitten', 'puppy', 'lion'];

请注意,不能保证数组的顺序遵循对象的顺序。

答案 3 :(得分:0)

   Object.entries(obj).forEach( ([key, value]) => { 
   console.log(`${key}: ${value}`) 
  • 在这里,Object.entries()给出了键:值对的数组。您可以根据需要使用结果。
相关问题