带有随机键的javascript-Foreach JSON
我目前在想反序列化json时遇到了这个问题。我不知道用未知的钥匙怎么做带有随机键的javascript-Foreach JSON,javascript,json,Javascript,Json,我目前在想反序列化json时遇到了这个问题。我不知道用未知的钥匙怎么做 [ { "84.200.222.4": [ 0.022 ] }, { "84.200.230.82": [ 1.315 ] }, { "80.156.160.161": [ 0.874 ] }, {
[
{
"84.200.222.4": [
0.022
]
},
{
"84.200.230.82": [
1.315
]
},
{
"80.156.160.161": [
0.874
]
},
{
"72.14.217.108": [
0.662
]
},
{
"108.170.251.193": [
0.638
]
},
{
"216.239.54.61": [
0.64
]
},
{
"172.217.23.131": [
0.564
]
}
]
当我想的时候,我该怎么做
1. 84.200.222.4
- 0.022
2. 84.200.230.82
- 1,315
3. 80.156.160.161
- 0.874
4 72.14.217.108
- 0.662
等等。。我目前不确定如何循环未知键,这是可能的吗?只需迭代数组,然后使用
Object.keys()
,它返回对象所有属性的数组
arr.forEach(obj => {
console.log(Object.keys(obj)[0]);
})
我没有测试这个,但它应该可以工作 首先,它是一个数组,所以你想在上面循环。然后,尽管对象键不同,但您可以使用object.keys获取对象的键,或者只是在对象上迭代。所以你的代码看起来是这样的
function printValues(arr)
{
var arrayLength = arr.length;
for (var i = 0; i < arrayLength; i++)
{
let obj = arr[i];
for (var key in obj) {
x = obj[key];
alert(x);
}
}
}
函数打印值(arr)
{
var arrayLength=阵列长度;
对于(变量i=0;i
这可以优化到一行,但我让它尽可能简单易懂。使用:
var parsed = JSON.parse(data);
这将返回一个javascript对象/数组
那就做吧
var result = parsed[0].keys.map(key => { /** do whatever **/});
这里有一个快速处理它的方法:
var数组=[{
"84.200.222.4": [0.022]
}, {
"84.200.230.82": [1.315]
}, {
"80.156.160.161": [0.874]
}, {
"72.14.217.108": [0.662]
}, {
"108.170.251.193": [0.638]
}, {
"216.239.54.61": [0.64]
}, {
"172.217.23.131": [0.564]
}];
array.forEach((对象,索引)=>{
var ip=Object.keys(Object.pop();
log(`${index+1}.${ip}\n-${object[ip]}`);
});
您可以使用Object.keys(obj.forEach((k,i)=>console.log(`${i}.${key}\n${obj[key]}`)
IP地址和权重…?使用forEach
循环arrays@randnum-1这不是要求。因为循环同样有效。@randnum-1我承认forEach是最好的选择,但基于OP的问题,我认为他还没有掌握基本知识,所以我不想缩减代码。实际上,可以使用f或者()!