带有随机键的javascript-Foreach 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 ] }, {

我目前在想反序列化json时遇到了这个问题。我不知道用未知的钥匙怎么做

[
    {
        "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或者()!