我有一个对象:
cars = {
'toyota': {
'year': 2015,
'color': 'blue'
},
'mazda': {
'year': 2017,
'color': 'white'
}
}
我想遍历cars
对象中的车辆并将它们推送到另一个阵列。
for ( carMake in cars ) {
$scope.newCarsArray.push(cars[carMake]);
}
以上正确地将每个carMake
对象推送到$scope.newCarsArray
数组中。但是,这只会推动内容(例如:年份和颜色),而不是车辆名称(如丰田和马自达)。如何在不改变原始对象的情况下将每个整个对象(包括车辆名称)推入$scope.newCarsArray
?
我认为以下方法可行,但它只会将汽车制作对象名称作为字符串。
for ( carMake in cars ) {
$scope.newCarsArray.push(carMake);
}
期望的输出:
$scope.newCarsArray = [
{
toyota: {
'year': 2015,
'color': 'blue'
}
},
{
mazda: {
'year': 2017,
'color': 'white'
}
}
];
答案 0 :(得分:1)
使用键名创建一个新对象并按下:
Objects.keys(cars).forEach(function(car) {
$scope.newCarsArray.push({
[car]:cars[car]
});
}); //Outputs like: [{"toyota": {}}, ..]
答案 1 :(得分:1)
如果您需要car
作为数组项的一部分:
angular.forEach(cars, function(item, key) {
var newItem = item;
newItem.car = key;
$scope.newCarsArray.push(newItem);
});
输出:
[
{
"year": 2015,
"color": "blue",
"car": "toyota"
},
{
"year": 2017,
"color": "white",
"car": "mazda"
}
]