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

Javascript 如何在不循环的情况下将固定属性值插入数组中的每个对象?,javascript,arrays,node.js,Javascript,Arrays,Node.js,是否有任何方法可以将固定值插入数组中的每个对象?我能够通过循环实现最终输出。是否有任何方法可以在不使用for/while循环的情况下实现最终输出 使用的编程语言:JavaScript 示例阵列: "cars": [ { "name":"Ford", "models":"Fiesta" }, { "name":"BMW", "models":"X1" }, { "name":"Fiat", "models":"Punto" } ] 所需数组:需要向数组中的每个对象添加类型

是否有任何方法可以将固定值插入数组中的每个对象?我能够通过循环实现最终输出。是否有任何方法可以在不使用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" }
]

根据定义,您必须循环。唯一的问题是您是使用
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}))

根据定义,您必须循环。唯一的问题是您是使用
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}))

您还可以使用
map
来解决您的目的

   cars.map((obj) => {
        obj.Active = 'false';
        return obj;
    }

您还可以使用
map
来解决您的目的

   cars.map((obj) => {
        obj.Active = 'false';
        return obj;
    }
您可以使用
Array#map

var汽车={
“汽车”:[
{“名称”:“福特”,“车型”:“嘉年华”},
{“名称”:“宝马”,“车型”:“X1”},
{“名称”:“菲亚特”,“车型”:“Punto”}
]
}
var newArr=汽车[“汽车”]。地图((汽车)=>{
汽车['type']=“柴油机”;
返回车;
});
控制台日志(newArr)您可以使用
数组#映射

var汽车={
“汽车”:[
{“名称”:“福特”,“车型”:“嘉年华”},
{“名称”:“宝马”,“车型”:“X1”},
{“名称”:“菲亚特”,“车型”:“Punto”}
]
}
var newArr=汽车[“汽车”]。地图((汽车)=>{
汽车['type']=“柴油机”;
返回车;
});
控制台日志(newArr)使用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);
使用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);

@torazaburo I通过使用循环成功了。我想知道是否还有其他简单的方法可以做到这一点?在代码或库函数中的某个地方会有一个循环,它会循环,因为没有任何方法可以在不循环的情况下将某些内容应用于数组中的每个项。因此,坦率地说,要求在没有循环的情况下完成这项工作是不可能的。你可以问一个“最干净”或“最简单”的方法来做这件事(然后这个问题可能就属于你了)。@torazaburo我通过使用循环成功了。我想知道是否还有其他简单的方法可以做到这一点?在代码或库函数中的某个地方会有一个循环,它会循环,因为没有任何方法可以在不循环的情况下将某些内容应用于数组中的每个项。因此,坦率地说,要求在没有循环的情况下完成这项工作是不可能的。你可以问“最干净”或“最简单”的方法来做这件事(然后问题可能就在上面)。在
.forEach()中有一个循环。
.forEach()中有一个循环
。似乎
forEach
在这里更惯用,除非您正在制作对象的副本。似乎
forEach
在这里更惯用,除非您正在制作对象的副本。