复杂的Javascript对象创建和重写问题。未定义错误集
userData数组最初只有一个对象,因此如果jsonData的长度超过一个,则会出现此错误,因为没有定义userData[1]等等 试试这个复杂的Javascript对象创建和重写问题。未定义错误集,javascript,object,undefined,Javascript,Object,Undefined,userData数组最初只有一个对象,因此如果jsonData的长度超过一个,则会出现此错误,因为没有定义userData[1]等等 试试这个 userData[i].date = ... 函数reworkInfoData(jsonData){ var userData=[]; 用户数据[0]={ 日期:'', 数据:[] }; 用户数据[0]。数据[0]={ 活动:“”, 时间:“” } var timeVar=新日期(); 对于(var i=0;i
userData[i].date = ...
函数reworkInfoData(jsonData){
var userData=[];
用户数据[0]={
日期:'',
数据:[]
};
用户数据[0]。数据[0]={
活动:“”,
时间:“”
}
var timeVar=新日期();
对于(var i=0;i
很多事情都是错的/不好的。请按照您的方式进行练习。1.代替下面的代码:
function reworkInfoData(jsonData){
var userData = [];
userData[0] = {
date: ' ',
data: []
};
userData[0].data[0] = {
activity: ' ',
time: ' '
}
var timeVar = new Date();
for(var i = 0; i < jsonData.length; i++){
timeVar = new Date(jsonData[i].date);
if(userData[i]) {
userData[i].date = timeVar.getFullYear() + '.' + timeVar.getMonth() +
'.' + timeVar.getDay();
for(var k = 0; k < jsonData[i].data.length; k++){
if(userData[i].data[k]) {
userData[i].data[k] = jsonData[i].data[k];
}else {
userData[i].data.push(jsonData[i].data[k])
}
}
} else {
var tmp = {};
tmp.date = timeVar.getFullYear() + '.' + timeVar.getMonth() +
'.' + timeVar.getDay();
for(var k = 0; k < jsonData[i].data.length; k++){
tmp[i].data.push(jsonData[i].data[k]);
}
}
}
return UserData;
}
尝试:
2.您正在为(var i=0;i
中的jsonData值,但您正在使用迭代器访问userDatauserData[i].date
当userData.length
小于jsonData.length
时,此操作将失败。更改逻辑以修复此问题 jsonData
的值是多少?我怀疑数组中的一个项是null
或未定义的
。您正在迭代jsonData,但正在尝试分配给userData。userData只有您在开始时添加的一个元素。@Stifle我从JSON.parse(fileContent)中获取jsonData的值,因此它不能是empy或未定义的。@ste2425那么,创建新对象数组的正确方法是什么呢?
function reworkInfoData(jsonData){
var userData = [];
userData[0] = {
date: ' ',
data: []
};
userData[0].data[0] = {
activity: ' ',
time: ' '
}
var timeVar = new Date();
for(var i = 0; i < jsonData.length; i++){
timeVar = new Date(jsonData[i].date);
if(userData[i]) {
userData[i].date = timeVar.getFullYear() + '.' + timeVar.getMonth() +
'.' + timeVar.getDay();
for(var k = 0; k < jsonData[i].data.length; k++){
if(userData[i].data[k]) {
userData[i].data[k] = jsonData[i].data[k];
}else {
userData[i].data.push(jsonData[i].data[k])
}
}
} else {
var tmp = {};
tmp.date = timeVar.getFullYear() + '.' + timeVar.getMonth() +
'.' + timeVar.getDay();
for(var k = 0; k < jsonData[i].data.length; k++){
tmp[i].data.push(jsonData[i].data[k]);
}
}
}
return UserData;
}
var userData = [];
userData[0] = {
date: ' ',
data: []
};
var userData = [];
userData.push({
date: ' ',
data: []
});