在大型JSON文件中找到随机条目

时间:2019-03-03 18:27:46

标签: node.js json

我想从JSON对象中获得一个随机条目,它看起来像这样:

{
    "one" : {
        "1" : [a, b, c],
        "2" : [d, e, f]
    },
    "two" : {
        "3" : [g, h, i],
        "4" : [j, k, l]
    }
}

我该如何从一个数组中获取随机条目?

编辑:我想要一个来自数组(例如[a, b, c])的随机条目,而不是嵌套的 objects

之一

1 个答案:

答案 0 :(得分:1)

通常,您需要获取onetwo对象,之后需要获取内部数组。最后,从数组中获取元素之一。万一您需要执行多次,可以考虑创建一个包含所有元素的数组并从中获取随机值。

    let json = {
            "one" : {
                "1" : ["a", "b", "c"],
                "2" : ["d", "e", "f"]
            },
            "two" : {
                "3" : ["g", "h", "i"],
                "4" : ["j", "k", "l"]
            }
        };
    let nextRandomMax = function(max) { 
      return Math.floor((Math.random() * max));
    }
    let keys = Object.keys(json);
    let randomItem = json[keys[nextRandomMax(keys.length)]];
        
    // go further
    let itemKeys = Object.keys(randomItem);
    let randomTable = randomItem[itemKeys[nextRandomMax(itemKeys.length)]];

    let randomElement = randomTable[nextRandomMax( randomTable.length)]
    console.log(randomElement);

请参阅: