javascript - 如何在 JSON 中找到最高键?

标签 javascript node.js json

我正在使用的 API 正在返回结构不良的数据,如下所示:

{
    "scsi0": "vm-101-disk-1.qcow2,size=32G",
    "scsi1": "vm-101-disk-2.qcow2,size=32G",
    "scsi2": "vm-101-disk-3.qcow2,size=32G"
}

如您所见,我没有使用包含 0, 1, 2 键/值对的 scsi 对象,我只是使用这样命名的键.

在 JavaScript 中,我如何搜索最高的 scsi 值(在这种情况下为 2)?

最佳答案

Object.keys() 是开始此类工作的好地方。这样的事情怎么样?

var data = {
  "scsi0": "vm-101-disk-1.qcow2,size=32G",
  "scsi1": "vm-101-disk-2.qcow2,size=32G",
  "scsi2": "vm-101-disk-3.qcow2,size=32G"
};

// get keys of data
var keys = Object.keys(data);

// get array of number values
var numbers = keys.map(function(key) {
  // strip text out of keys, parse as integers
  return parseInt(key.replace(/\D/g, '') || 0);
})

// get the largest number in the array
var highest = Math.max.apply(null, numbers);

// build the data key with this number
var key = "scsi" + highest;

// get the data pertaining to the key
var final = data[key];

// log the result
console.log(final);

关于javascript - 如何在 JSON 中找到最高键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53795188/

相关文章:

node.js - yarn 添加命令返回 http 405

javascript - Highcharts 循环 JSON 对象来填充数据系列

java - 如何获取 Facebook 中特定页面的所有帖子 ID

javascript - Create-react-app 命令不使用 ES6 类

javascript - 我如何检查 "canplaythrough"是否为真?

javascript - 更改路由器后功能 setInterval 变得更快

JavaScript scrollTop 滚动到错误的 div

linux - 无法使用 tar 提取 nodejs 源文件

node.js - 蓝名单应用程序抛出 "Enroll failed to create remote cloudant database for Optional("test1")。超时

javascript - Backbone.js:获取模型集合并渲染它们