【发布时间】:2019-07-18 06:03:24
【问题描述】:
如何将两个对象组合成一个数组,同时将键值保留在对象中?我找到了合并对象的解决方案,但它们似乎都没有保留键值。
我的代码正在创建新车。我想将我的新车组织成一个数组,稍后,能够按型号、型号年份、颜色等来组织它们。其中一些组织逻辑尚未实现,因为我正专注于解决对象合并问题在数据变得太长之前。
class Car {
constructor(type, model_year) {
this.type = type,
this.model_year = model_year
}
}
class Tesla extends Car{
constructor(type, model_year){
super(type, model_year)
}
}
let myTesla1 = new Tesla("Sedan", 2015)
let myTesla2 = new Tesla("Coupe", 2014)
我想要的输出是:
let teslas = // Here is what I'm failing to implement
console.log(teslas)
// ["type", "Sedan", "model_year", "2015", "type", "Coupe", "model_year", "2014"]
也许我的逻辑在这里错了。我确信有更好的方法来组织这些汽车,但我也想不通。
我的尝试
我尝试使用如下条目映射对象:
let teslas = Object.entries(myTesla1).map(([key, value]) => ({key, value}));
console.log(teslas);
但我的输出并不完全是我想要的,因为它把关键值如下:
[ { key: 'type', value: 'Sedan' },
{ key: 'model_year', value: 2015 } ]
提前感谢您的帮助。我对此很陌生,所以请原谅任何应该以更好的方式完成的事情。
【问题讨论】:
-
我确信有更好的方法来组织这些汽车,但我也想不通。看到这个时我确实想知道为什么你会想要以某种方式展平您的对象,使每辆车及其属性之间的关联取决于它们在数组中的顺序。似乎最好有一个带有汽车的数组作为顶级容器,并且该容器具有不同的键值。但这取决于你,真的。
标签: javascript arrays javascript-objects