Problem 1: markedDates
has been defined as an array ([]
). To define it as an object (which is what you have as your expected output), use {}
. (No such thing as an 'associative array' in JavaScript; arrays use 0
, 1
, etc. as indexes. Objects use 0
, 1
, key
, another_key
as indexes [or keys, more accurately].)
Problem 2: You haven't defined the dates
array within markedDates
which will cause a reference error.
Problem 3: You are pushing strings to the array instead of objects. This won't error, but won't produce the intended output.
Problem 4: You're trying to use styleClass
as an array - it's just a string property within the markedDates
.
To fix your code in the line-by-line manner (keeping similarity to your original code):
var markedDates = {};
markedDates.dates = [];
markedDates.dates.push({day: 1, month: 12, year: 2021});
markedDates.dates.push({day: 15, month: 12, year: 2021});
markedDates.styleClass = "test";
console.log(markedDates);
.as-console-wrapper { max-height: 100% !important; top: auto; }
But if you've got your expected output statically defined at the top, you can just assign that directly to the variable as such:
var markedDates = {
dates: [{ day: 1, month: 12, year: 2021 }, { day: 15, month: 12, year: 2021 }],
styleClass: 'test'
};
console.log(markedDates);