我得到了一个超过200个托管的JSOn对象。实际上它看起来像
params = {
key_a_1 : "value_a_1"
key b_1 : "value_b_1"
key_c_1 : "value_c_1"
key d_1 : "value_d_1"
key_a_2 : "value_a_2"
key b_2 : "value_b_2"
key_c_2 : "value_c_2"
key d_2 : "value_d_2"
}
我需要将其转换为
params = {
1
{
key_a : "value_a_1"
key b : "value_b_1"
key_c : "value_c_1"
key d : "value_d_1"
}
2
{
"key_a : value_a_2"
"key b : value_b_2"
"key_c : value_c_2"
"key d : value_d_2"
}
}
键可以命名为其他任何内容,但数字始终是id。
任何想法最好的方式是什么?谢谢!
基本上问题是,我需要位于密钥末尾的ID作为JSON对象内部的自有数组,而我的Javascript技能还不够好。
答案 0 :(得分:0)
只需迭代属性并将它们填充到另一个对象中:
var newObject = {};
Object.keys(oldObject).forEach(function (key) {
var name = /(key_\w+)_\d+/.exec(key)[1],
index = /key_\w+_(\d+)/.exec(key)[1];
if (!newObject[index]) {
newObject[index] = {};
}
newObject[index][name] = oldObject[key];
});
console.log(newObject);