我有一个非常大的JSON对象, struct 如下:

{A : 1, B : 2, C : 3, D : 4}

我需要一个函数,可以交换我的对象中的键的值,我不知道怎么做.我需要这样的输出:

{1 : A, 2 : B, 3 : C, 4 : D}

有没有什么方法可以让我手动创建一个新对象来交换所有东西

推荐答案

function swap(json){
  var ret = {};
  for(var key in json){
    ret[json[key]] = key;
  }
  return ret;
}

这里的示例FIDDLE不要忘记打开控制台查看结果.


ES6个版本:

static objectFlip(obj) {
  const ret = {};
  Object.keys(obj).forEach(key => {
    ret[obj[key]] = key;
  });
  return ret;
}

或者使用Array.reduce()&;Object.keys()

static objectFlip(obj) {
  return Object.keys(obj).reduce((ret, key) => {
    ret[obj[key]] = key;
    return ret;
  }, {});
}

或者使用Array.reduce()&;Object.entries()

static objectFlip(obj) {
  return Object.entries(obj).reduce((ret, entry) => {
    const [ key, value ] = entry;
    ret[ value ] = key;
    return ret;
  }, {});
}

Node.js相关问答推荐

GitLab SAST中的Nodejcan未找到匹配项

如果非SQL函数在事务内部运行失败,PG-Promise事务会回滚吗?

请求正文未定义

为什么这个verifyToken函数从未被调用过?

FiRestore UPDATE方法引发错误:&Quot;错误:13内部:收到代码为1&Quot;的RST_STREAM

填充函数在Node.js和MongoDB中不起作用

在Docker容器404页面中找不到服务器(提供静态reactjs文件)

在函数上执行 toString 的Typescript 会产生奇怪的字符 (path_1, (0, Promise.writeFile))

Redis Typescript 删除方法类型转换

DynamoDB 分页数据检索

运行本地移动自动化测试时,在onPrepare钩子中,ERROR @wdio/cli:utils: A service failed in the 'onPrepare'

无法通过 NextJS 访问 HTTP 帖子中的正文

NodeJS `request` 库无法通过 multipart-form-data 将文件发布到 dotnet 服务器

如何在 node /快速服务器上配置 mongoDB

如何在不使用位置运算符 $ 的情况下更新 mongodb 文档中数组中的嵌套文档?

如何为一个网站实现这 2 个网址.即 www.administrator.sitename.com 和 www.sitename.com?

用于排除多个文件的 node.js glob 模式

将变量传递给nodemailer中的html模板

需要 node-gyp 的 npm install 在 Windows 上失败

如何使用 cookie 创建 HTTP 客户端请求?