jquery - jQuery从多维关联数组中切片所有键
问题描述
更新的问题
这是 jQuery 中数组(dataSet)的控制台输出:
[
{
"Alias_0":"Toto",
"Address_1":"Here",
"Location_0":"Bombay"
},
{
"Alias_0":"Tata",
"Address_1":"There",
"Location_0":"Berlin"
},
{
"Alias_0":"Tutu",
"Address_1":"Somewhere",
"Location_0":"Brussels"
}
]
这是我想对其进行改造的方式:
[
{
"Alias":"Toto",
"Address":"Here",
"Location":"Bombay"
},
{
"Alias":"Tata",
"Address":"There",
"Location":"Berlin"
},
{
"Alias":"Tutu",
"Address":"Somewhere",
"Location":"Brussels"
}
]
这是我的尝试:
var dataSet = [
{"Alias_0": "Toto", "Address_1": "Here", "Location_0": "Bombay"},
{"Alias_0": "Tata", "Address_1": "There", "Location_0": "Berlin"},
{"Alias_0": "Tutu", "Address_1": "Somewhere", "Location_0": "Brussels"}
];
var result=[];
$.each(dataSet, function(key1,value1){
result[key1] = new Array();
$.each(dataSet[key1], function(key2,value2){
key2=key2.slice(0,-2);
result[key1][key2] = new Array();
result[key1][key2] = value2;
})
})
console.log(result)
这是我得到的:
[
[],
[],
[]
]
这里有什么问题?键和值在控制台中输出时显示预期数据。但是“结果”数组不包括它们。而且,新的数组格式不好([]代替{})
仅供参考:我更愿意从原始数组中删除键的最后一个字符,但由于我无法做到这一点,我正在尝试从原始数组创建第二个数组。但是,如果可以直接转换原始数组而不创建第二个数组,那将是理想的。
总而言之,从数组的每个键中删除两个字符似乎过于复杂。一定有更简单的方法(直接函数?)
谢谢你。
解决方案
您可以使用.reduce():
var data = [{"black_0": "1", "red_1": "2", "blue_1": "3"}];
var result = Object.keys(data[0]).reduce(function(a, e) {
a[0][e.replace(/_[01]/, '')] = data[0][e];
return a;
}, [{}]);
console.log(result);
推荐阅读
- mysql - 在 Eloquent 中组合查询结果,由其中一列键控
- authentication - 有没有办法在呈现特定视图时隐藏容器项?
- java - 使用spring boot从不存在的地址发送邮件失败:需要密码?
- python - 估计点列表中的缺失点
- python - 如何对熊猫数据框的所有计数求和
- excel - VBA 无论如何要在 TextBox 中的 _Enter 之前执行 _MouseDown?
- c++ - Cuda C++:设备上的 Malloc 类并用来自主机的数据填充它
- javascript - 如何在 Next Js (React) 中实现 adobe 分析?
- sql - 获取按日期分组的查询
- laravel - Laravel 中的 VUE2 组件注册