当前位置: 首页 > 面试题库 >

交换值为JSON的密钥

陶刚豪
2023-03-14
问题内容

我有一个结构非常大的JSON对象,如下所示:

{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;
  }, {});
}


 类似资料:
  • 我正在升级一个平台上的安全。但是,我无法破解如何安全地存储我的加密/解密密钥。 当前安装程序: MySQL Server Webserver 我需要使用aes_encrypt/aes_decrypt存储和读取数据库中的所有敏感数据。但是,加密/解密数据的密钥我想要安全地存储。因此,当某人获得数据库或Web服务器的访问权时,他们将无法轻易猜出组合键或从配置文件中读取组合键。 密钥可以根据我需要读/写

  • 我目前正在使用Aptana Studio3.6.1(一个带有一些PHP语法修复的自定义构建)。我使用SFTP将文件从我的项目上传到一个测试站点,使用发布工具(项目顶部的上传/下载箭头)。 最近,我变得无法上传文件。WinSCP可以很好地执行这些操作,并且我可以在使用PuTTY或普通旧OpenSSH时将SSH插入服务器而没有问题。然而,Aptana却大发雷霆: auth.log(带有LogLevel

  • 我正在Java的一个个人项目中工作,该项目涉及通过不安全的通道发送敏感数据。我需要知道如何实现Diffie Hellman密钥交换(DHKE)在java使用其库。我知道关于它的所有密码理论,所以不需要深入细节,我只需要一个非常基本的实现,所以我可以让两个程序共享一个密钥。我从java2s.com得到了这个例子,但它并不完整: 我该怎么做呢?有人能帮我完成剩下的代码吗?

  • 问题内容: 我正在使用http://www.json.org/java/index.html此处提供的JSON库将必须转换的JSON字符串转换为CSV。但是我的问题是,转换后键的顺序丢失了。 这是转换代码: 这是“ someString”的内容: 结果如下: 我期望保持键的顺序: 有什么办法可以使用此库获得此结果吗?如果不是,是否还有其他库可以提供在结果中保留键顺序的功能? 问题答案: 解决了。

  • 我正在寻找一种在RabbitMQ中进行分层路由的方法。我试图在留档中找到答案,但突然失败了。 通常,RabbitMQ允许您通过某个路由密钥连接到直接交换机,但我不清楚如何在多个交换机之间进行路由。 例如,假设我们有“根”交换和“主机1”交换,路由键为“主机1”。我有一个通过路由键绑定到“主机1”交换的队列。我可以用routing_key发布消息到“根”交换吗,比如“主机1.31261”?显然,它不

  • 在Diffie Hellman密钥交换过程中,如果中间的人能够得到素数“p”和生成器“g”的值。他现在能破译私钥或者生成的共享秘密秘密吗?