如何创建数量不确定的数组来放置JSON对象(javascript)
我的目标是从一个JSON对象开始。这不是我将要处理的对象,但在本例中可以使用如何创建数量不确定的数组来放置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"} ]; 假设我的目标是根据年龄对该地区进行分类。我希望创建一个
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对象。你知道吗