假设我有一个对象调用 userData = {..}
我想定义一个对象 userDataB ,其属性 a、b、c 和 d 来自 userData,但仅限于已定义的属性。我知道我可以做这样的事情:
userDataB = {}
if(userData.a){userDataB.a = a};
if(userData.b){userDataB.b = b};
...
但是,有更干净的东西吗?可能来自 es5 或 es6?
最佳答案
这也可能有帮助
const object1 = {
a: 'somestring',
b: 42,
c: false,
d: undefined
};
let object2 = Object.assign(
...Object.entries(object1).map(obj =>
obj[1] !== undefined ? { [obj[0]]: obj[1] } : {}
)
);
或者这个
let object2 = Object.assign(
...Object.keys(object1).map(key =>
object1[key] !== undefined ? { [key]: object1[key] } : {}
)
);
或者这个
let object2 = Object.entries(object1).reduce(
(a, v) => (v[1] !== undefined ? Object.assign(a, { [v[0]]: v[1] }) : a),
{}
);
关于javascript/typescript - 仅在定义时将项目添加到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55395937/