如何创建不确定数量的数组来放置 JSON 对象 (JavaScript)
how can i create an undetermined number of arrays to place JSON objects in (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 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"}
]
];
然后我可以对新数组进行排序。 我永远不会知道年龄会是多少,或者我需要创建多少个数组。 谢谢你的帮助。
使用下划线很容易.js:
var items = [
{"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 ageGroups = _.groupBy( items, "age" );
http://jsfiddle.net/w7s51hng/
如果你不想包含库,那么下划线的好处是它有注释的源代码,所以你可以看到它是如何实现的:http://underscorejs.org/docs/underscore.html#section-36
我想你想要这个:
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/javascript对象var名称或从数字var中检索值
- XML字符串转换为JSON javascript
- ASP.NET WebApi DateTimeOffset 序列化为 Json/JavaScript (angular2
- 对 JSON JavaScript 中的值应用折扣
- 使用JSON/JavaScript将成员添加到Office 365组
- 格式不正确的json/javascript
- Json javascript parsing
- JSON JavaScript 未定义的变量问题
- 在 JSON/Javascript 中表示一天中的时间的首选方法
- XML 到 JSON JavaScript 函数不起作用
- loop through json javascript
- 在 Rails 中对 JSON/Javascript 解析的正确过程
- 在 JSON JavaScript 中查找和替换
- JSON / JavaScript 获取对象键
- 过滤嵌套的 JSON JavaScript
- 将不带属性的值附加到 json javascript
- JSON+Javascript/jQuery.如何从 json 文件导入数据并对其进行解析
- parse facebook json javascript
- 在嵌套的 json javascript 中显示数组的所有键值对
- 将两个 json/javascript 数组合并为一个数组