use*_*521 2 javascript ecmascript-6 lodash
我有几个像这样的对象:
{'id[0]': 2}
{'url[0]': 11}
{'id[1]': 3}
{'url[1]': 14}
Run Code Online (Sandbox Code Playgroud)
我希望得到这样的东西:
[{id:2, url:11}, {id:3, url:14}]
Run Code Online (Sandbox Code Playgroud)
我也在我的项目中使用了lodash.也许lodash有一些方法吗?
您可以对键使用正则表达式,并在必要时创建新对象.然后将值分配给键.
var data = [{ 'id[0]': 2 }, { 'url[0]': 11 }, { 'id[1]': 3 }, { 'url[1]': 14 }],
result = [];
data.forEach(function (a) {
Object.keys(a).forEach(function (k) {
var keys = k.match(/^([^\[]+)\[(\d+)\]$/);
if (keys.length === 3) {
result[keys[2]] = result[keys[2]] || {};
result[keys[2]][keys[1]] = a[k];
}
});
});
console.log(result);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
252 次 |
| 最近记录: |