Your element is not an array, however your cart needs to be an array in order to support many element objects. Code example:
var element = {}, cart = [];
element.id = id;
element.quantity = quantity;
cart.push(element);
If you want cart to be an array of objects in the form { element: { id: 10, quantity: 1} } then perform:
var element = {}, cart = [];
element.id = id;
element.quantity = quantity;
cart.push({element: element});
JSON.stringify() was mentioned as a concern in the comment:
>> JSON.stringify([{a: 1}, {a: 2}])
“[{“a”:1},{“a”:2}]”
With that row
var element = {};
you define element to be a plain object. The native JavaScript object has no push() method. To add new items to a plain object use this syntax:
element[ yourKey ] = yourValue;
On the other hand you could define element as an array using
var element = [];
Then you can add elements using push().