有什么办法可以在数组中的每个对象中插入一个固定值吗?我能够通过循环实现最终输出。有没有办法在不使用for / while循环的情况下实现最终输出?
使用的编程语言: JavaScript
示例数组:
"cars": [
{ "name":"Ford", "models":"Fiesta" },
{ "name":"BMW", "models":"X1" },
{ "name":"Fiat", "models":"Punto" }
]
必需数组:需要为数组中的每个对象添加类型:" diesel"
"cars": [
{ type:"diesel", "name":"Ford", "models":"Fiesta" },
{ type:"diesel", "name":"BMW", "models":"X1" },
{ type:"diesel", "name":"Fiat", "models":"Punto" }
]
答案 0 :(得分:4)
根据定义,您必须循环。唯一的问题是你是自己用for
编写循环,还是使用forEach
之类的东西为你循环。
cars.forEach(car => car.type = "diesel")
这是一种稍微更具功能性的方法:
const addType = type => car => car.type = type;
cars.forEach(addType("diesel"))
是的,这有点复杂。 addType
创建一个函数,将传递给它的任何内容的type
属性设置为某个值。因此addType("diesel")
是一个向其参数添加type: "diesel"
的函数。
或者你可以循环:
for (car of cars) car.type == "diesel";
以上将改变原始对象。要使用添加的属性创建新对象数组:
cars.map(car => ({...car, type: diesel}))
答案 1 :(得分:0)
您也可以使用map
来解决您的目的。
cars.map((obj) => {
obj.Active = 'false';
return obj;
}
答案 2 :(得分:0)
您可以使用Array#map
。
var automobile = {
"cars": [
{ "name":"Ford", "models":"Fiesta" },
{ "name":"BMW", "models":"X1" },
{ "name":"Fiat", "models":"Punto" }
]
}
var newArr = automobile["cars"].map((car) =>{
car['type'] = "diesel";
return car;
});
console.log(newArr);

答案 3 :(得分:0)
使用forEach
var vehicle = {
"cars": [
{ "name":"Ford", "models":"Fiesta" },
{ "name":"BMW", "models":"X1" },
{ "name":"Fiat", "models":"Punto" }
]
}
vehicle.cars.forEach((car) =>{
car.type = "diesel";
return car;
});
console.log(vehicle.cars);