如何使用 ES6 解构赋值将一个对象赋值给另一个对象
How to use ES6 destructuring assignment to assign one object to another
我需要根据 key
名称从 arrB
复制对象 arrA
中的键值。这是我的两个对象:
let arrA = {
'aaa':'',
'bbb':'',
'ccc':''
}
let arrb = {
'aaa':'111',
'bbb':'222',
'ccc':'333',
'ddd':'444',
'eee':'555',
...
}
如何使用 ES6
解构性作业执行此操作:
arrA = {
'aaa':'111',
'bbb':'222',
'ccc':'333'
}
解构的目的是将对象中的变量提取到本地范围内。详细了解解构 here。您最好使用不同的工具来解决这个问题。
使用不同函数的组合,您可以这样做:
let arra = {
'aaa':'',
'bbb':'',
'ccc':''
}
let arrb = {
'aaa':'111',
'bbb':'222',
'ccc':'333',
'ddd':'444',
'eee':'555'
}
const result = Object.fromEntries(
Object.keys(arra)
.map(key => [key, arrb[key]])
)
console.log(result)
首先,我使用 Object.keys(), then I'm creating a list of pairs using the .map() function, and finally I'm turning the pairs into a new object with Object.fromEntries()
从 arra 获取所有密钥
使用 destructing assignment,您必须明确定义要复制的每个 属性:
let arra = {
'aaa': '',
'bbb': '',
'ccc': ''
};
let arrb = {
'aaa': '111',
'bbb': '222',
'ccc': '333',
'ddd': '444',
'eee': '555',
};
({aaa: arra.aaa, bbb: arra.bbb, ccc: arra.ccc} = arrb);
console.log(arra);
但是,这段代码重复性很强,最糟糕的是它对复制的内容很明确。
Lodash's pick()
是你的朋友(因为生命太短暂,无法编写无聊的样板代码):
您只需 npm install lodash
并说:
const _ = require('lodash');
_.pick( sourceObjectOrArray, arrayOfDesiredPaths );
像这样:
const _ = require('lodash');
const source = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
f: 6,
g: 7,
}
const picked = _.pick( source, ['a','c','e'] );
console.log( JSON.stringify(picked) );
你会发现 picked
是你所期望的:
{
a: 1,
c: 3,
e: 5
}
我需要根据 key
名称从 arrB
复制对象 arrA
中的键值。这是我的两个对象:
let arrA = {
'aaa':'',
'bbb':'',
'ccc':''
}
let arrb = {
'aaa':'111',
'bbb':'222',
'ccc':'333',
'ddd':'444',
'eee':'555',
...
}
如何使用 ES6
解构性作业执行此操作:
arrA = {
'aaa':'111',
'bbb':'222',
'ccc':'333'
}
解构的目的是将对象中的变量提取到本地范围内。详细了解解构 here。您最好使用不同的工具来解决这个问题。
使用不同函数的组合,您可以这样做:
let arra = {
'aaa':'',
'bbb':'',
'ccc':''
}
let arrb = {
'aaa':'111',
'bbb':'222',
'ccc':'333',
'ddd':'444',
'eee':'555'
}
const result = Object.fromEntries(
Object.keys(arra)
.map(key => [key, arrb[key]])
)
console.log(result)
首先,我使用 Object.keys(), then I'm creating a list of pairs using the .map() function, and finally I'm turning the pairs into a new object with Object.fromEntries()
从 arra 获取所有密钥使用 destructing assignment,您必须明确定义要复制的每个 属性:
let arra = {
'aaa': '',
'bbb': '',
'ccc': ''
};
let arrb = {
'aaa': '111',
'bbb': '222',
'ccc': '333',
'ddd': '444',
'eee': '555',
};
({aaa: arra.aaa, bbb: arra.bbb, ccc: arra.ccc} = arrb);
console.log(arra);
但是,这段代码重复性很强,最糟糕的是它对复制的内容很明确。
Lodash's pick()
是你的朋友(因为生命太短暂,无法编写无聊的样板代码):
您只需 npm install lodash
并说:
const _ = require('lodash');
_.pick( sourceObjectOrArray, arrayOfDesiredPaths );
像这样:
const _ = require('lodash');
const source = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
f: 6,
g: 7,
}
const picked = _.pick( source, ['a','c','e'] );
console.log( JSON.stringify(picked) );
你会发现 picked
是你所期望的:
{
a: 1,
c: 3,
e: 5
}