首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript对象:如何使一个键的值成为另一个键(而不是键的值)?

Javascript对象:如何使一个键的值成为另一个键(而不是键的值)?
EN

Stack Overflow用户
提问于 2018-10-16 09:42:51
回答 1查看 32关注 0票数 0

有没有办法以编程方式将一个键的值设置为另一个键?例如:

代码语言:javascript
复制
export function getObjectForMapStateToProps(state, reducer) {
    let stateObject = {};
    for (let key in state[reducer]) {
        if (state[reducer].hasOwnProperty(key)) {
            stateObject[key] = state[reducer][key];
        }
    }
    return stateObject;
}

这样做的目的是返回一个对象,其中每个键、值对如下所示:

代码语言:javascript
复制
namespace: state.city.namespace

我实际得到的是state.city.namespace密钥的值:

代码语言:javascript
复制
namespace: 'DIskieisSi98s8sjw'.

提前感谢您的帮助!

编辑--添加其他上下文

@mem035我可能应该添加这个上下文。我正在尝试创建一个函数,它将使我不必键入Redux的mapStateToProps。对于上面的示例,下面是地图:

代码语言:javascript
复制
const mapStateToProps = state => {
    console.log(getObjectForMapStateToProps(state, 'city'));
    return {
        namespace: state.city.namespace,
        componentId: state.city.componentId,
        items: state.city.items,
        defaultValue: state.city.defaultValue,
        selectItem: state.city.selectItem,
        allowAdd: state.city.allowAdd,
        validationRegEx: state.city.validationRegEx,
        regExDescription: state.city.regExDescription,
        hasForeignKey: state.city.hasForeignKey,
        foreignKeyModel: state.city.foreignKeyModel,
        foreignKeyValue: state.city.foreignKeyValue,
        errorMessages: state.city.errorMessages,
        isError: state.city.isError,
        isLoading: state.city.isLoading,
        apiRoute: state.city.apiRoute
    };
};

当该值变成字符串时,没有一个属性是映射/工作的。

EN

回答 1

Stack Overflow用户

发布于 2018-10-16 09:44:52

只需将结果字符串化,而不是再次访问对象。

而不是:

代码语言:javascript
复制
stateObject[key] = state[reducer][key];

使用:

代码语言:javascript
复制
stateObject[key] = `state.${reducer}.${key}`;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52826819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档