将对象解构为数组
Destructure object into an array
我有这个对象
const foo = {
a: 'kitten',
b: 'puppy',
c: 'lion'
};
将其解构为变量是这样的
const { a, b, c } = foo;
是否有一个单行代码如何将其分解为一个数组,以便结果
const array = [a, b, c];
据我所知,没有 "one-liner" 使用解构。
您可以改用其中之一(不要使用解构):
(1)
const array = [foo.a, foo.b, foo.c]
(2,正如@Sebastian Simon 所指出的)
const array = Object.values(foo);
(3,正如@Sebastian Simon 所指出的)
const array = ['a', 'b', 'c'].map(k => foo[k]);
您可以获取一个函数,解构所需的属性,然后 return 一个具有所需顺序的数组。
const
getABC = ({ a, b, c }) => [a, b, c],
foo = { a: 'kitten', b: 'puppy', c: 'lion' };
console.log(getABC(foo));
没有从对象到数组的解构。
但是如果你想要对象的所有键/值都是数组格式,你可以使用这些:
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'];
请注意,数组的顺序不能保证遵循对象的顺序。
Object.entries(obj).forEach( ([key, value]) => {
console.log(`${key}: ${value}`)
- 这里,Object.entries()给出了键值对的数组。您可以根据需要使用结果。
我有这个对象
const foo = {
a: 'kitten',
b: 'puppy',
c: 'lion'
};
将其解构为变量是这样的
const { a, b, c } = foo;
是否有一个单行代码如何将其分解为一个数组,以便结果
const array = [a, b, c];
据我所知,没有 "one-liner" 使用解构。
您可以改用其中之一(不要使用解构):
(1)
const array = [foo.a, foo.b, foo.c]
(2,正如@Sebastian Simon 所指出的)
const array = Object.values(foo);
(3,正如@Sebastian Simon 所指出的)
const array = ['a', 'b', 'c'].map(k => foo[k]);
您可以获取一个函数,解构所需的属性,然后 return 一个具有所需顺序的数组。
const
getABC = ({ a, b, c }) => [a, b, c],
foo = { a: 'kitten', b: 'puppy', c: 'lion' };
console.log(getABC(foo));
没有从对象到数组的解构。
但是如果你想要对象的所有键/值都是数组格式,你可以使用这些:
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'];
请注意,数组的顺序不能保证遵循对象的顺序。
Object.entries(obj).forEach( ([key, value]) => {
console.log(`${key}: ${value}`)
- 这里,Object.entries()给出了键值对的数组。您可以根据需要使用结果。