Помогите с масивами и обектами

имею такую ​​проблему.
Есть на входе массив объектов

ga4_items =

[

{

item_id: “111126048”,

price: 58299,

index: 1,

quantity: 1

},

{

item_id: “111125979”,

price: 57399,

index: 2,

quantity: 1

}

];

надо из него сделать также массив объектов, но несколько иной (другие названия имен элементов)

такой

ecomm =

[

{

id: “111126048”,

price: 58299,

google_business_vertical: retail

},

{

id: “111125979”,

price: 57399,

google_business_vertical: retail

}

];

Что то пробую

var ecomm;
function ecom(id, price, google_business_vertical) {
this.id = id;
this.price = price;
this.google_business_vertical = ’retail’;
}

const ga4_items =

[

{

item_id: “111126048”,

price: 58299,

index: 1,

quantity: 1

},

{

item_id: “111125979”,

price: 57399,

index: 2,

quantity: 1

}

];

ga4_items.forEach((element) => {

ecomm = ecom(element.item_id, element.price, ’retail’);
console.log(ecomm.price);
console.log(ecomm.item_id);
});

Должно было бы создаться два объекта. Но результат - Error: ecomm is undefined
Что не так ли?
Спасибо!

function ecom(id, price, google_business_vertical) {
this.id = id;
this.price = price;
this.google_business_vertical = ’retail’;
}

Код выглядит как будто фунция должна вызываться с new (тогда this в теле функции будет ссылаться на новосозданный объект)

Это значит что теоретически вот это исправит код:

ecomm = new ecom(element.item_id, element.price, ’retail’);

Но лучше исправить саму функцию. ecom. Она должна создавать новый объект, так и напишем.

Сокращенный синтаксис объявления объекта для которого совпадают названия ключей и переменных со значениями для этих ключей:

function ecom(id, price, google_business_vertical) {
	return {
		id,
		price,
		google_business_vertical,
	}
}

Но я субъективно люблю многословную однозначность:

unction ecom(id, price, google_business_vertical) {
	return {
		id: id,
		price: price,
		google_business_vertical: google_business_vertical,
	}
}

new забыл - этот момент понятен
подскажите, как в JS выводить переменную по аналогии с php var_dump, print_r

Обычно используют console.log.

Иногда этого бывает надостаточно (например чтобы посмотреть в глубь объекта, методы в его цепочке наследования, например) тогда console.dir.