array push in javascript 关联数组
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);
哪个returns错误
问题 1:markedDates
已定义为数组 ([]
)。要将其定义为一个对象(这是您预期的输出),请使用 {}
。 (在 JavaScript 中没有 'associative array' 这样的东西;数组使用 0
、1
等作为索引。对象使用 0
、1
, key
, another_key
作为索引 [或键,更准确地说].)
问题2:您没有在markedDates
中定义dates
数组,这会导致引用错误。
问题 3:您将字符串而不是对象推入数组。这不会出错,但不会产生预期的输出。
问题 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; }
但是如果您在顶部静态定义了预期的输出,您可以直接将其分配给变量:
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);
我正在尝试创建日期和样式的关联数组。我期待像
这样的数组{
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);
哪个returns错误
问题 1:markedDates
已定义为数组 ([]
)。要将其定义为一个对象(这是您预期的输出),请使用 {}
。 (在 JavaScript 中没有 'associative array' 这样的东西;数组使用 0
、1
等作为索引。对象使用 0
、1
, key
, another_key
作为索引 [或键,更准确地说].)
问题2:您没有在markedDates
中定义dates
数组,这会导致引用错误。
问题 3:您将字符串而不是对象推入数组。这不会出错,但不会产生预期的输出。
问题 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; }
但是如果您在顶部静态定义了预期的输出,您可以直接将其分配给变量:
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);