首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将js中的一组对象映射到另一个对象

如何将js中的一组对象映射到另一个对象
EN

Stack Overflow用户
提问于 2019-01-24 21:13:59
回答 1查看 308关注 0票数 1

我有一个对象,我需要返回每个对象来检查它的映射结果。下面代码的问题就在这一行。

代码语言:javascript
复制
style: { ...map[settings] },

我需要一个方法来通过每一个设置,并把它传递给地图。不知道如何在es6中实现这一最有效的方法?

--这是将设置传递给PassThrough组件的值

代码语言:javascript
复制
const settings = {
  block_background: GradientGreen,
  block_spacing: padding,
};

这里是我的组件

代码语言:javascript
复制
const PassThrough = ({ children, settings }) => {
  const map = {
    GradientGreen: {
      background: 'linear-gradient(-95deg, green, blue 100%)',
    },
    padding: '20px',
  };

  const cloneChild = () => {
    return cloneElement(children, {
      style: { ...map[settings] },
    });
  };

  return (
    <Fragment>
      {cloneChild()}
    <Fragment/>
  );
};
EN

回答 1

Stack Overflow用户

发布于 2019-01-24 21:16:57

最短的可能是:

代码语言:javascript
复制
 inlineStyle: Object.assign({}, ...Object.entries(settings).map(([k, v]) => ({ [k]: map[v] })))

但实际上,我会将settings改为:

代码语言:javascript
复制
const settings = original => {
 block_background: original.GradientGreen,
 block_spacing: original.padding,
};

那就是:

代码语言:javascript
复制
inlineStlye: settings(map)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54355373

复制
相关文章

相似问题

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