[英]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.