[英]array push in javascript associative array
我正在嘗試創建日期和樣式的關聯數組。 我期待一個像
{
dates: [{day: 1, month: 12, year: 2021}, {day: 15, month: 12, year: 2021}],
styleClass: 'test'
},
我的代碼是
var markedDates = [];
markedDates['dates'].push('day: 1, month: 12, year: 2021');
markedDates['dates'].push('day: 15, month: 12, year: 2021');
markedDates['styleClass'].push('test');
console.log(markedDates);
返回錯誤
問題 1: markedDates
已被定義為一個數組 ( []
)。 要將其定義為 object(這是您的預期輸出),請使用{}
。 (JavaScript 中沒有“關聯數組”之類的東西;arrays 使用0
、 1
等作為索引。對象使用0
、 1
、 key
、 another_key
作為索引[或更准確地說是鍵]。)
問題 2:您尚未在markedDates
日期中定義dates
數組,這將導致引用錯誤。
問題 3:您將字符串推送到數組而不是對象。 這不會出錯,但不會產生預期的 output。
問題 4:您正在嘗試將styleClass
用作數組 - 它只是markedDates
中的字符串屬性。
以逐行方式修復您的代碼(保持與原始代碼的相似性):
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; }
但是,如果您在頂部靜態定義了預期的 output,則可以直接將其分配給變量,如下所示:
var markedDates = { dates: [{ day: 1, month: 12, year: 2021 }, { day: 15, month: 12, year: 2021 }], styleClass: 'test' }; console.log(markedDates);
你應該考慮的事情 -
markedDate
日期。dates
初始化為數組,然后再推入它 var markedDates = []; var markedDate = {}; markedDate['dates'] = []; markedDate['dates'].push({day: 1, month: 12, year: 2021}); markedDate['dates'].push({day: 15, month: 12, year: 2021}); markedDate['styleClass'] = 'test'; markedDates.push(markedDate); console.log(markedDates);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.