作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 JSON 格式:
{ device: 'eth0',
Rx: { bytes: '491539402315', packets: '278178082' },
Tx: { bytes: '15113860013', packets: '67405143' } }
{ device: 'lo',
Rx: { bytes: '1653376107', packets: '6380792' },
Tx: { bytes: '1653376107', packets: '6380792' } }
我需要获取设备值的索引,以便稍后提取字节和数据包...我在数据库中有值 eth0,所以我需要获取索引 0(如果我放 lo,我需要获取索引 1)
在 javascript 中我该怎么做?
最佳答案
假设这是一个数组,您可以简单地迭代该数组:
var devices = [{ device: 'eth0',
Rx: { bytes: '491539402315', packets: '278178082' },
Tx: { bytes: '15113860013', packets: '67405143' } },
{ device: 'lo',
Rx: { bytes: '1653376107', packets: '6380792' },
Tx: { bytes: '1653376107', packets: '6380792' } }]
function getIndex (name) {
for (var i = 0; i < devices.length; ++i) {
if (devices[i].device === name) {
return i;
}
}
return -1;
}
console.log(getIndex("eth0"));
console.log(getIndex("lo"));
console.log(getIndex("missing device"));
另一种较慢的方法是使用 map
和 indexOf
函数:
var index = devices.map(c => c.device).indexOf(name);
或者,正如 Jaimec 所建议的,findIndex
可能会有用。如果您真的很关心性能,您可能想要使用 for 循环版本。在这种情况下,它可能并不重要。
var index = devices.findIndex(c => c.device === name);
关于Javascript JSON 获取值的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44283054/
我是一名优秀的程序员,十分优秀!