开发者问题收集

错误:TypeError:undefined 不是 Javascript 中的对象

2018-09-22
2395

我是 javascript 新手,我正在尝试一些数据来了解数组。不幸的是,我收到错误

" Error: TypeError: undefined is not an object in Java Script(evaluating 'dateArray[count] = dateInput[i]')"

我做错了什么?

var dateInput = ["18-Sep-2018", "19-Sep-2018", "20-Sep-2018", "21-Sep-2018", "22-Sep-2018"];
var msInput = [86.69, 86.69, 86.76, 86.86, 86.97];
var hsdInput = [79.58, 79.58, 79.58, 79.58, 79.58];
var startDate, endDate, count;
var dateArray, msArray, hsdArray = new Array();
count = 0;
startDate = "18-Sep-2018";
endDate = "21-Sep-2018";

function createArray() {
    for (i = 0; i < dateInput.length; i = i + 1) {
        if (dateInput[i] >= startDate && dateInput[i] <= endDate) {
            dateArray[count] = dateInput[i];
            count = count + 1;
        }
    }
}
createArray();
console.log(msArray);
3个回答

您应该这样写:

var dateArray = [], msArray = [], hsdArray = [];

因为在 var dateArray, msArray, hsdArray = new Array(); 中 dateArray 和 msArray 未定义

pL4Gu33
2018-09-22

问题是您尚未初始化 dateArray 变量。

var dateArray = new Array(), // <-- initialize this with new Array() or []
    msArray = new Array(), // <-- Might wanna initialize this too
    hsdArray = new Array();
Anand Undavia
2018-09-22

错误是不言而喻的,您试图将未定义视为对象,这意味着您正在执行类似

undefined[key] = 'something'

OR

undefined.key

在您的代码中,问题出在以下行。

var dateArray, msArray, hsdArray = new Array();

此处 dateArray 和 msArray 未定义。将其更改为

var dateArray = [], msArray = [], hsdArray = [];

OR

var dateArray = new Array(), msArray = new Array(), hsdArray = new Array();

OR(为避免将来出现此类混淆,请单独声明 var)

var dateArray = new Array();
var msArray = new Array();
var hsdArray = new Array();
Shubham Gupta
2018-09-22