用javascript创建具有新结构的对象数组副本的最佳方法



我想知道是否有更好的选择来创建具有新结构的对象数组的副本

实际上我是这样做的(打字稿(:

const carModels = (carList: Array<CarModel>): Array<SelectValues> => {
const cars: Array<SelectValues> = []
carList.forEach((car: CarModel) =>
cars.push({
value: `/api/modeles/${car.id}`,
label: car.libelle,
})
)
return cars
}

这是Array#map 的典型用例

const carModels = (carList: CarModel[]): SelectValues[] =>
carList.map((car: CarModel) =>
({
value: `/api/modeles/${car.id}`,
label: car.libelle,
}))

const carList = [
{id: 1, libelle: 1},
{id: 2, libelle: 2}
]
const carModels = carList =>
carList.map(car =>
({
value: `/api/modeles/${car.id}`,
label: car.libelle,
}));
console.log(carModels(carList));

.map函数正是在这种情况下使用的。所以你可以做这样的事情。。。

const parseCarModel = (car: CarModel) => ({
value: `/api/modeles/${car.id}`,
label: car.libelle,
});
const cars: Array<SelectValues> = carList.map(parseCardModel);

您可以使用map((。但对于这样一项简单的任务,我认为没有比其他选择更好的方法了。

const carList = [
{id: 1, libelle: 1},
{id: 2, libelle: 2}
]
const cars = carList.map(x => (
{
value: `/api/modeles/${x.id}`,
label: x.libelle
}
))
console.log(cars);

最新更新