我注意到我倾向于在分解并返回带有值的对象时执行以下结构。
const { isLoading, fieldValues, stage } = state.personalInformation
return {
isLoading,
fieldValues,
stage,
};
仅使用三个参数就可以了,但是当我需要传递很多参数时,它很快就会变得讨厌。
如果不进行破坏,它会显得过于冗长。
return {
isLoading: state.personalInformation.isLoading,
fieldValues: state.personalInformation.fieldValues,
stage: state.personalInformation.stage,
};
有办法避免这种情况吗?
最佳答案
如果目标是避免重复属性名称,那么现在唯一的方法就是给自己一个可重用的辅助函数,类似于以下内容:
function grab(obj, ...props) {
const result = {};
props.forEach(prop => result[prop] = obj[prop]);
return result;
}
用法:
return grab(state.personalInformation, "isLoading", "fieldValues", "stage");
例:
var state = {
personalInformation: {
isLoading: true,
fieldValues: "bar",
stage: 14,
other: "something"
}
};
function grab(obj, ...props) {
const result = {};
props.forEach(prop => result[prop] = obj[prop]);
return result;
}
function foo() {
return grab(state.personalInformation, "isLoading", "fieldValues", "stage");
}
console.log(foo());
(但是有18种不同的方式来旋转
grab
函数,这只是一种方法。)您还可以使用一个
grabAllBut
复制所有属性(列出的属性除外),以备不时之需。关于javascript - 如何避免破坏格局,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43318365/