【问题标题】:Issues getting data from array's dictionary JS从数组的字典 JS 中获取数据的问题
【发布时间】:2020-02-07 10:31:08
【问题描述】:

我在获取数组中存储的数据时遇到问题。我看不出我的函数的问题出在哪里以及为什么返回未定义的元素。

这是我在数组中存储数据的函数:

function getTaskKidData(str) {
   var tasks = $('#tasks_data > div');;
   var formated_tasks = [];
   var formated_kids = [];
   formated_homeworks = [];
   tasks.each(function(index) {
       var task_kids = $(this).find('ul').eq(0).find('li');
       var task_homeworks = $(this).find('ul').eq(1).find('li');
       if (task_kids.length > 0 && task_homeworks.length > 0) {
           task_kids.each(function(index) {
               var kid_name = $(this).text().trim();
               if (str == "kid"){
                   var kid = $('#kid_list > li > a[class*="active"]').text().replace(window.location.pathname.split('/')[2],'').trim();
                   if (kid == kid_name){
                       formated_kids.push({'name': kid_name});
                   }
               }else{
                   formated_kids.push({'name': kid_name});
               }
           });
           task_homeworks.each(function(index) {
               var homework_name = $(this).find('p').eq(0).text().trim();
               var homework_date = $(this).find('p').eq(1).text().trim();
               formated_homeworks.push({
                   'name': homework_name,
                   'date': homework_date,
               });
           });
           formated_tasks.push({
               'kids': task_kids,
               'homeworks': task_homeworks,
           })
       }
   });
   return formated_tasks;
}

如果我将数据存储为文本,我不明白为什么数组输出中的对象是“li”标签。数组的输出是下一个: 这是我试图获取数据的代码:

var tasks = getTaskKidData("kid");
console.log(tasks)
       for (let i = 0; i < tasks.length; i++) {
           console.log("schedule");
           for (let j = 0; j < tasks[i]['kids'].length; j++) {
               console.log(tasks[i]['kids'][j]['name']);
           }
           for (let j = 0; j < tasks[i]['homeworks'].length; j++) {
               console.log(tasks[i]['homeworks'][j]['name']);
               console.log(tasks[i]['homeworks'][j]['date']);
           }
       }

这是我运行代码时的输出:

你知道这个问题吗?

感谢阅读!!

【问题讨论】:

    标签: javascript jquery arrays dictionary


    【解决方案1】:

    在你的代码中你有

    var task_kids = $(this).find('ul').eq(0).find('li');
    

    然后你记录 task_kids。日志输出显示 li 元素,因为这是您选择的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-17
      • 1970-01-01
      相关资源
      最近更新 更多