Akk*_*kki 3 javascript arrays foreach merge object
我有一个名为as的数组 commondata
commondata = [{
giverUser: 'Abc',
createdAt: '2016 11: 48: 40',
note: 'Test'
}, {
giverUser: 'Xyz',
createdAt: '12: 22: 37',
note: 'Test data'
}, {
giverUser: 'Abc',
createdAt: '2016 14: 22: 07',
note: '"test123"'
}];
Run Code Online (Sandbox Code Playgroud)
当我尝试将上面的对象数组与下面的代码合并时,我得到的数组与它相同.
以下是我的代码:
commondata.forEach(function(a, i) {
if (!this[a.giverUser]) {
this[a.giveruser] = {
giverUser: a.giverUser,
createdAt: [],
note: []
};
r_grouped.push(this[a.giveruser]);
}
this[a.giveruser].createdAt = this[a.giveruser].createdAt.concat(a.createdAt);
this[a.giveruser].note = this[a.giveruser].note.concat(a.note);
}, Object.create(null));
Run Code Online (Sandbox Code Playgroud)
上面的代码有什么问题?为什么我没有得到与同一个giveruser的合并数组?
你giveruser应该有一些拼写错误giverUser
休息工作正常
var commondata = [{ giverUser: 'Abc', createdAt: '2016 11:48:40', note: 'Test' }, { giverUser: 'Xyz', createdAt: '12:22:37', note: 'Test data' }, { giverUser: 'Abc', createdAt: '2016 14:22:07', note: '"test123"' }],
r_grouped = [];
commondata.forEach(function (a, i) {
if (!this[a.giverUser]) {
this[a.giverUser] = { giverUser: a.giverUser, createdAt: [], note: [] };
r_grouped.push(this[a.giverUser]);
}
this[a.giverUser].createdAt.push(a.createdAt);
this[a.giverUser].note.push(a.note);
}, Object.create(null));
document.write('<pre>' + JSON.stringify(r_grouped, 0, 4) + '</pre>');Run Code Online (Sandbox Code Playgroud)
只是另一个注释
this[a.giverUser].createdAt = this[a.giverUser].createdAt.concat(a.createdAt);
Run Code Online (Sandbox Code Playgroud)
如果值不是数组,则不需要这样做.你可以采取推动.
this[a.giverUser].createdAt.push(a.createdAt);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1765 次 |
| 最近记录: |