首页 > 解决方案 > 无法读取未定义 jquery 的属性“推送”

问题描述

我正面临一个问题,因为我做了正确的方法,但不幸的是给了我错误“Uncought TypeError:无法读取未定义的属性'push'”下面是示例代码

var parametersData = {};
data.dateList.forEach((date, index) => {
  parametersData[date].push(date);
  parametersData['success'].push(data.report[date]['success']);
  parametersData['unsuccess'].push(data.report[date]['unsuccess']);
});

在此处输入图像描述 任何人请帮助是什么问题?谢谢

标签: javascriptjquery

解决方案


parametersData是一个对象。你不能push()进入一个对象,只能进入一个数组。

但是,由于data.dateList它本身似乎是一个数组,并且您正在使用 aforEach()来遍历它,所以您的输出也必须是一个数组。因此,您可以map()改用;

let parametersData = data.dateList.map(date => ({
  [date]: date,
  success: data.report[date].success,
  unsuccess: data.report[date].unsuccess
}));

let data = {
  dateList: ['01/01/2020', '02/02/2020'],
  report: {
    '01/01/2020': {
      success: 's1',
      unsuccess: 'us1'
    },
    '02/02/2020': {
      success: 's2',
      unsuccess: 'us2'
    }
  }
}

let parametersData = data.dateList.map(date => ({
  [date]: date,
  success: data.report[date].success,
  unsuccess: data.report[date].unsuccess
}));

console.log(parametersData);


推荐阅读