在2D数组中动态推送新列
Dynamically push new column in 2D array
我正在尝试使用jQuery在2D数组中动态添加新值,代码如下:
var disabledTime = [[]];
var index = 0;
$("#addTimeSlot").click(function(){
// do some stuff here...
disabledTime[index].push($('.slotTime').last().prev().val());
disabledTime[index].push($('.slotTime').last().val());
}
当index
是0
时,一切都可以,但递增后会出现错误:"未定义不是对象"。
我需要创建类似[['1','2'],['3','4']]
的东西,其中元素是动态添加的。有人能帮我吗?谢谢
这是因为当index
不为零时,数组中的元素为undefined
。将元素初始化为空数组即可。
var disabledTime = [[]];
var index = 0;
$("#addTimeSlot").click(function () {
//do some stuff here...
// Check if the element at `index` is not undefined.
if (disabledTime[index] === undefined) {
// Initialize to empty array.
disabledTime[index] = [];
}
disabledTime[index].push($('.slotTime').last().prev().val());
disabledTime[index].push($('.slotTime').last().val());
});
这是因为只有索引0才有数组。
不能推送到不是数组本身的索引。
只需从一个空数组开始,然后将数组推到第一个:
var disabledTime=[];
var index = 0;
$("#addTimeSlot").click(function(){
//do some stuff here...
disabledTime.push([]);
disabledTime[index].push($('.slotTime').last().prev().val());
disabledTime[index].push($('.slotTime').last().val());
您的数组是[[]]
,这意味着它在0处包含一个空数组,并且在所有其他索引中,它都是未定义的
基本操作:array[index] = []
相关文章:
- 在2D数组中动态推送新列
- 将网格视图的两列相乘,并将其显示在新列中
- 如何在 Codeigniter 中使用 jquery Ajax 在行中添加新的动态行
- 使用Ember.js将新行动态插入到Table上下文中
- 流星:显示数组数据,因为表在添加新列时给出了重复值
- 如何将新的动态内容添加到我的JS代码中
- JavaScript-为什么当我向表中添加新列时,它会说“;未定义的“;在额外的细胞中
- 你怎样才能保持“;主题“;并添加新的动态页面
- 在 JavaScript 数组中添加新列
- 基于表中的列动态创建复选框
- 当我单击添加新列按钮时,表单会自动提交
- 当数据达到 10 行时,如何将数据放在新列中
- 有没有办法使用变量的新值动态重新加载 ASS
- 添加新行动态引导日期时间选择器不起作用
- 在角度UI-Grid中交换数据,在外部更改数据集时不可见的新列
- 使用单击功能绘制新的动态JS多边形
- 需要选择一个新列,并使用带有下拉菜单的onchange函数打印到文本区域
- 将新列添加到ag网格
- JQuery Mobile-附加新的动态内容-未应用CSS
- 在不重新加载页面的情况下加载新的动态图表