如何在没有循环的情况下将固定属性值插入到数组内的每个对象中?

时间:2017-07-25 05:00:07

标签: javascript arrays node.js

有什么办法可以在数组中的每个对象中插入一个固定值吗?我能够通过循环实现最终输出。有没有办法在不使用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" }
]

4 个答案:

答案 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);