Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法从未定义中读取属性ScheduleDate var-AppPatientsList=JSON.parse(JSON响应); var apppatientslistssort=AppPatientsList.sort(函数(a,b){ 返回a.firstName.toLowerCase()b.firstName.toLowerCase()值 ? 1 : 0; }); var DataArray=[]; 对于(变量i=0;i_Javascript - Fatal编程技术网

Javascript 无法从未定义中读取属性ScheduleDate var-AppPatientsList=JSON.parse(JSON响应); var apppatientslistssort=AppPatientsList.sort(函数(a,b){ 返回a.firstName.toLowerCase()b.firstName.toLowerCase()值 ? 1 : 0; }); var DataArray=[]; 对于(变量i=0;i

Javascript 无法从未定义中读取属性ScheduleDate var-AppPatientsList=JSON.parse(JSON响应); var apppatientslistssort=AppPatientsList.sort(函数(a,b){ 返回a.firstName.toLowerCase()b.firstName.toLowerCase()值 ? 1 : 0; }); var DataArray=[]; 对于(变量i=0;i,javascript,Javascript,这段代码有什么问题,为什么我不能访问ScheduleDate?当您在if子句中时,您仅初始化约会变量,但每次迭代时都将其添加到数组中 如果AppPatientsListSort的第一个元素没有您搜索的值,DataArray[0]将包含未定义的 在第二个循环中,您尝试访问DataArray[0].ScheduleDate,这将引发错误 更新: 更重要的是,由于JavaScript没有块作用域,可能是DataArray中的几个条目指向同一appointment对象 取决于你想做什么,一切可能都会改变

这段代码有什么问题,为什么我不能访问ScheduleDate?

当您在
if
子句中时,您仅初始化
约会
变量,但每次迭代时都将其添加到数组中

如果
AppPatientsListSort
的第一个元素没有您搜索的值,
DataArray[0]
将包含
未定义的

在第二个循环中,您尝试访问
DataArray[0].ScheduleDate
,这将引发错误

更新: 更重要的是,由于JavaScript没有块作用域,可能是
DataArray
中的几个条目指向同一
appointment
对象

取决于你想做什么,一切可能都会改变

 var AppPatientsList = JSON.parse(JSON RESPONSE);   
  var AppPatientsListSort = AppPatientsList.sort(function(a,b){
     return   a.firstName.toLowerCase() <b.firstName.toLowerCase()
            ? -1
            : a.firstName.toLowerCase()>b.firstName.toLowerCase()
            ? 1 : 0;
  });    
    var DataArray = [];
      for (var i = 0; i < AppPatientsListSort.length; ++i) {
        if (AppPatientsListSort[i].firstName === search.value) {
        var appointment = {};
        appointment.PatientID = AppPatientsListSort[i].PatientID;
        appointment.ScheduleDate = AppPatientsListSort[i].ScheduleDate;
        alert(appointment.ScheduleDate); // Works fine, i get the date... 
        }   
        DataArray[i] = appointment;
      } 
      var RowIndex = 0;
      var ScheduleDate = "";
      for (i = 0, len = DataArray.length; i < len; i++) {
        // Throws me error in this place... WHY?
        if (ScheduleDate != DataArray[i].ScheduleDate) {
          ScheduleDate = DataArray[i].ScheduleDate;        
        }      
      }

并将此语句移动到
if
子句中,以便只添加符合搜索条件的约会


进一步说明:要查看您的
DataArray
包含的内容,请在第二个循环之前制作一个
console.dir(DataArray)
,并检查内容(假设您使用的是Chrome或Safari,请使用Firefox的Firebug)

DataArray[i] = appointment;
DataArray.push(appointment);