重新排列 JavaScript 数组/对象
Rearranging javascript array / object
我正在尝试重新排列:
[
{"Appointment":"6","Converted":"0","Lead":"9","Qualified":"0","Dead":"0"},
{"Appointment":"1","Converted":"0","Lead":"1","Qualified":"0","Dead":"0"},
{"Appointment":"1","Converted":"0","Lead":"0","Qualified":"0","Dead":"0"}
]
自:
[
{"name":"Appointment", "data":[6,1,1]},
{"name":"Converted", "data":[0,0,0]},
{"name":"Lead", "data":[9,1,0]},
{"name":"Qualified", "data":[0,0,0]},
{"name":"Dead", "data":[0,0,0]}
]
我已经设法通过执行 for(obj 中的 var prop)循环来获取具有正确名称的 5 个数组,但我想知道如何实现数据部分的转换。 也许是一厢情愿的想法,但有没有比循环中循环更简单的方法!?
解决方案必须是动态的...可能像我的例子一样有 3 个数组,或多或少。 但是,属性的数量将始终增加 5,如示例中所示。
您可以将键分组到对象中,然后放入数组中...就像在小提琴中一样...
http://jsfiddle.net/u7xLnmuh/
var data = [
{"Appointment":"6","Converted":"0","Lead":"9","Qualified":"0","Dead":"0"},
{"Appointment":"1","Converted":"0","Lead":"1","Qualified":"0","Dead":"0"},
{"Appointment":"1","Converted":"0","Lead":"0","Qualified":"0","Dead":"0"}
]
function groupByKey(data){
var grouped = {};
var result = [];
data.forEach(function(row){
for(var property in row){
if(!(property in grouped)){
grouped[property] = [];
}
grouped[property].push(+row[property]);
}
});
for(var property in grouped){
result.push({
name: property,
data: grouped[property]
});
}
return result;
}
var groupedData = groupByKey(data));
此解决方案适用于输入的任何数据集
使结果成为其键是名称的对象,因为查找以下内容更容易:
var result = {};
for (var key in input[0]) {
result[key] = [];
}
for (var i = 0; i < input.length; i++) {
var obj = input[i];
for (key in obj) {
result[key].push(parseInt(obj[key], 10));
}
}
如果您确实需要将结果作为对象数组,则可以转换result
:
var result_array = [];
for (var name in result) {
result_array.push({name: name, data: result[name]});
}
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 将Javascript数组发送到控制器ASP.NET MVC
- JavaScript数组包含一个值
- 将JavaScript数组传递给函数
- javascript:数组循环
- 将数据存储在javascript数组中以供进一步使用
- 在Javascript数组中查找绝对最大值
- JavaScript数组优化以提高性能
- 在javascript数组中分散数字
- 如何发送分配列表<字符串>到JavaScript数组或可枚举对象
- Javascript数组动态
- javascript数组元素是否知道其封闭数组
- 将 JSON 数组解析为 JavaScript 数组
- 将Transform和Instance Variable转换为对象的JavaScript数组
- 使用Web Html表单创建Javascript数组
- 从重复的javascript数组结果集中只获取一行
- 如何为Javascript数组()的使用准备PHP变量
- Javascript数组和函数
- 为DataTables aoColumnDefs创建JavaScript数组(JSON格式)