我有一个关联数组 - 按日期索引。每个元素都有另一个数组。
[03/16/2015:Array [3],03/17/2015:Array [3],03/18/2015:Array [3],03/19/2015:Array [3]]
我用这段代码创建了它:
array[cellDate][i]=cellText;
如何从单元格03/16/2015 array [2] ??
获取值 var text=array['03/16/2015'][2];
使用这行代码我遇到了错误。
编辑:
http://www.traineffective.com/schedule/
我存储在计划中删除的块的数组标题(如果单元格为空,则为“空”值块的标题)
我想要达到的目的是记住特定周的块的顺序,当用户用箭头更改周时,它会根据日期从数组中加载来加载块。
我创建数组的代码:
function saveWeekToArray(array){
var cellDate;
var cellText;
var tmpText;
var i;
workoutsTD.each(function(){
cellDate=$(this).attr("data-day");
array[cellDate]=['','',''];
i=0;
$(this).children('.workout-cell').each(function(){
if (!$(this).hasClass('workout-cell-empty')){
cellText=$(this).find('span').text();
array[cellDate][i]=cellText;
} else {
array[cellDate][i]='empty';
}
i++
});
});
}
我从数组加载数据的代码(一个有错误)
function loadBlocksFromArray(array){
var cellDate;
var cellText;
var tmpText;
var i;
workoutsTD.each(function(){
cellDate=$(this).attr("data-day");
i=0;
$(this).children('.workout-cell').each(function(){
if ((array[cellDate][i])!='empty'){
cellText=array[cellDate][i];
$(this).append(createBlock(cellText));
$(this).removeClass('workout-cell-empty');
}
i++;
});
});
}
当您在控制台日志中单击sumbit按钮时,您将看到数组的结构。
我在改变星期时遇到错误:
enter code here
未捕获的TypeError:无法读取未定义的属性“0”
答案 0 :(得分:1)
在Javascript中,没有关联数组的概念。你要么有数组(用数字索引),要么有对象(其元素用字符串索引)。
您想要的是包含所有数组的对象。例如:
var data = {
'3/4/2015' : ['val1', 'val2', 'val3'],
'3/8/2015' : ['val1', 'val2', 'val3']
};
然后您可以按照自己想要的方式访问元素:
var ele = data['3/4/2015'][1];
答案 1 :(得分:0)
https://jsfiddle.net/x9dnwgwc/
这就是我想要的效果。感谢您提示Harvtronix!
var jsonObj = { workout : {} }
var i;
var k;
var workoutArray = [];
for(i=1; i<=7; i++){
var newWorkout = i+ "/12/2015";
for (k=0; k<=2; k++){
var newValue = "workoutTitle" + k;
workoutArray[k]=newValue;
}
jsonObj.workout[newWorkout]=workoutArray;
}
console.log(jsonObj);
for(i=1; i<=7; i++){
var newWorkout = i+ "/12/2015";
var tmpArray= jsonObj.workout[newWorkout];
console.log(tmpArray);
}