Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建数量不确定的数组来放置JSON对象(javascript)_Javascript - Fatal编程技术网

如何创建数量不确定的数组来放置JSON对象(javascript)

如何创建数量不确定的数组来放置JSON对象(javascript),javascript,Javascript,我的目标是从一个JSON对象开始。这不是我将要处理的对象,但在本例中可以使用 var json = [ {"id":"1","age":"20", "region":"Y"}, {"id":"2", "age":"20", "region":"X"}, {"id":"3", "age":"31", "region":"Z"}, {"id":"4", "age":"35", "region":"Q"} ]; 假设我的目标是根据年龄对该地区进行分类。我希望创建一个

我的目标是从一个JSON对象开始。这不是我将要处理的对象,但在本例中可以使用

 var json = [
    {"id":"1","age":"20", "region":"Y"},
    {"id":"2", "age":"20", "region":"X"},
    {"id":"3", "age":"31", "region":"Z"},
    {"id":"4", "age":"35", "region":"Q"}
];
假设我的目标是根据年龄对该地区进行分类。我希望创建一个将json拆分为以下内容的函数:

var newObj = [
              [
                {"id":"1","age":"20", "region":"Y"},
                {"id":"2", "age":"20", "region":"X"}
              ],
              [
                {"id":"3", "age":"31", "region":"Z"}
              ],
              [
               {"id":"4", "age":"35", "region":"Q"}
              ]
            ];
然后我可以对新数组进行排序。我永远都不知道要创建多少个数组,或者需要创建多少个数组。谢谢你的帮助。

我想你想要这个:

function groupByProperty(list, prop) {
    var hash = {};
    list.forEach(function(obj) {
        var value = obj[prop];

        if (!(value in hash)) {
            hash[value] = [];
        }

        hash[value].push(object);
    });

    return Object.keys(hash).map(function(key) {
        return hash[key];
    });
}

var newObj = groupByProperty(json, 'age');
我想你想要这个:

function groupByProperty(list, prop) {
    var hash = {};
    list.forEach(function(obj) {
        var value = obj[prop];

        if (!(value in hash)) {
            hash[value] = [];
        }

        hash[value].push(object);
    });

    return Object.keys(hash).map(function(key) {
        return hash[key];
    });
}

var newObj = groupByProperty(json, 'age');
我想你想要这个:

function groupByProperty(list, prop) {
    var hash = {};
    list.forEach(function(obj) {
        var value = obj[prop];

        if (!(value in hash)) {
            hash[value] = [];
        }

        hash[value].push(object);
    });

    return Object.keys(hash).map(function(key) {
        return hash[key];
    });
}

var newObj = groupByProperty(json, 'age');
我想你想要这个:

function groupByProperty(list, prop) {
    var hash = {};
    list.forEach(function(obj) {
        var value = obj[prop];

        if (!(value in hash)) {
            hash[value] = [];
        }

        hash[value].push(object);
    });

    return Object.keys(hash).map(function(key) {
        return hash[key];
    });
}

var newObj = groupByProperty(json, 'age');
这将很容易使用:

如果您不想包含库,下划线的好处在于它带有注释的源代码,这样您就可以看到它是如何实现的:

使用起来很简单:

如果您不想包含库,下划线的好处在于它带有注释的源代码,这样您就可以看到它是如何实现的:

使用起来很简单:

如果您不想包含库,下划线的好处在于它带有注释的源代码,这样您就可以看到它是如何实现的:

使用起来很简单:


如果您不想包含一个库,下划线的好处是它带有注释的源代码,这样您就可以看到它是如何实现的:

。我也不明白你到底有什么问题<代码>[]创建一个新阵列,您可以创建任意数量的阵列。为了重复某些指令,可以使用循环。我为不够具体而道歉:这个变量是以JSON的形式编写的,它是一个instanceof对象。你有答案的建议吗?我还是不知道你的具体问题是什么。也许这会有所帮助:。我正试图想出一种方法来编写一个函数/方法,例如可以将json、age和region作为参数。然后,它将根据年龄在var newObj内部创建嵌套数组。然后,如果有很多可以排序的区域,我可以根据区域进行排序。我陷入困境的是,我想不出如何创建这些新阵列。我认为一个解决方案在于合并排序的一种变体,其中只有相似的年龄被合并到一起,但我想看看在我能够做到这一点之前,是否有人有一个更简单的想法。您可以使用
age->array
表作为中间数据结构。在对源数组中的所有元素进行迭代时,对于每个年龄段,都要检查它是否存在于表中。如果是,请将其附加到已存在的数组中。如果不是,则使用新数组(包含当前对象)创建一个新条目。您可以使用对象来实现这样的表。最后,您可以迭代该(表)对象的所有属性,并将它们推送到一个新数组(以获得一个数组数组)。。我也不明白你到底有什么问题<代码>[]创建一个新阵列,您可以创建任意数量的阵列。为了重复某些指令,可以使用循环。我为不够具体而道歉:这个变量是以JSON的形式编写的,它是一个instanceof对象。你有答案的建议吗?我还是不知道你的具体问题是什么。也许这会有所帮助:。我正试图想出一种方法来编写一个函数/方法,例如可以将json、age和region作为参数。然后,它将根据年龄在var newObj内部创建嵌套数组。然后,如果有很多可以排序的区域,我可以根据区域进行排序。我陷入困境的是,我想不出如何创建这些新阵列。我认为一个解决方案在于合并排序的一种变体,其中只有相似的年龄被合并到一起,但我想看看在我能够做到这一点之前,是否有人有一个更简单的想法。您可以使用
age->array
表作为中间数据结构。在对源数组中的所有元素进行迭代时,对于每个年龄段,都要检查它是否存在于表中。如果是,请将其附加到已存在的数组中。如果不是,则使用新数组(包含当前对象)创建一个新条目。您可以使用对象来实现这样的表。最后,您可以迭代该(表)对象的所有属性,并将它们推送到一个新数组(以获得一个数组数组)。。我也不明白你到底有什么问题<代码>[]创建一个新阵列,您可以创建任意数量的阵列。为了重复某些指令,可以使用循环。我为不够具体而道歉:这个变量是以JSON的形式编写的,它是一个instanceof对象。你有答案的建议吗?我还是不知道你的具体问题是什么。也许这会有所帮助:。我正试图想出一种方法来编写一个函数/方法,例如可以将json、age和region作为参数。然后,它将根据年龄在var newObj内部创建嵌套数组。然后,如果有很多可以排序的区域,我可以根据区域进行排序。我陷入困境的是,我想不出如何创建这些新阵列。我认为一个解决方案在于合并排序的一种变体,其中只有相似的年龄被合并到一起,但我想看看在我能够做到这一点之前,是否有人有一个更简单的想法。您可以使用
age->array
表作为中间数据结构。在对源数组中的所有元素进行迭代时,对于每个年龄段,都要检查它是否存在于表中。如果是,请将其附加到已存在的数组中。如果不是,则使用新数组(包含当前对象)创建一个新条目。您可以使用对象来实现这样的表。最后,您可以迭代该(表)对象的所有属性,并将它们推送到一个新数组(以获得一个数组数组)。。我也不明白你到底有什么问题<代码>[]创建一个新阵列,您可以创建任意数量的阵列。为了重复某些指令,可以使用循环。我为不够具体而道歉:这个变量是以JSON的形式编写的,它是一个instanceof对象。你知道吗