javascript - 使用 Javascript 在分组数组中添加新记录
问题描述
我想在我的分组数组中添加新记录。例如
var cars = [{ make: 'audi', model: 'r8', year: '2012' }, { make: 'audi', model: 'rs5', year: '2013' }, { make: 'ford', model: 'mustang', year: '2012' }, { make: 'ford', model: 'fusion', year: '2015' }, { make: 'kia', model: 'optima', year: '2012' }];
var result = cars.reduce(function (r, a) {
r[a.make] = r[a.make] || [];
r[a.make].push(a);
return r;
}, Object.create(null));
console.log(result);
任何帮助将不胜感激。
解决方案
我想以下会做:
const result = {"audi":[{"make":"audi","model":"r8","year":"2012"},{"make":"audi","model":"rs5","year":"2013"}],"ford":[{"make":"ford","model":"mustang","year":"2012"},{"make":"ford","model":"fusion","year":"2015"}],"kia":[{"make":"kia","model":"optima","year":"2012"}]};
const addCar = (result, car) =>
Object.keys(result).some((k) => k === car.make)//see if car exists
? { ...result, [car.make]: result[car.make].concat(car) }//it does
: { ...result, [car.make]: [car] };//it does not
console.log(addCar(result, { make: 'kia', model: 'hello world' }).kia);
推荐阅读
- python - 是否可以从单独的模块加载 SqlAlchemy 表定义而不会导致“未使用的导入语句”?
- powershell - 使用 Powershell 从 AD 中提取属性
- python-3.x - 如何在python中将每2行与2列连接起来?
- javascript - 无法使用完全相同的代码在某些页面上加载资源
- python - 即使两个对象具有相同的 id,“is”操作也会返回 false
- css - 在柔性显示中水平居中图像?
- javascript - 如何在 Matter.js 中模糊单个对象?
- ms-access - 更新查询不返回任何值
- java - Jackson JSONproperty 未将字段绑定到变量
- c# - Linq Where 语句不考虑时间