获取Uncaught TypeError的Js:无法读取未定义的属性但仍然有效

时间:2016-04-26 20:42:01

标签: javascript audio

我有一些javascript可以从数组中获取坐标。

我得到的错误是检索变量的左右坐标。

错误是

DecisionTree =
ClassificationTree
PredictorNames: {1x4 cell}
ResponseName: 'Y'
ClassNames: {1x3 cell}
ScoreTransform: 'none'
CategoricalPredictors: []
NumObservations: 150
Properties, Methods
>> view(DecisionTree,'mode','graph')
>> resubLoss(DecisionTree)
ans =
0.0200
NB = NaiveBayes.fit(meas,species)
NB =
Naive Bayes classifier with 3 classes for 4
dimensions.
Feature Distribution(s):normal
Classes:setosa, versicolor, virginica
>> z = NB.predict(meas);
>> ErrorNB = confusionmat(z,species)
ErrorNB =
50 0 0
0 47 3
0 3 47
1-sum(diag(ErrorNB))/sum(sum(ErrorNB))
ans =
0.0400
resubLoss(KNN)
ans =
0

代码是

Uncaught TypeError: Cannot read property 'rightX' of undefined

n变量的控制台日志和notesArray [n] .rightX

enter image description here 所以, 得到的数字是它正在查找的任何变量的rightX的坐标,并且实际上正常工作。我的问题是,为什么(或如何)抛出这个错误但返回正确的坐标并且无论如何都要修复我的代码以便它不会抛出错误?

2 个答案:

答案 0 :(得分:1)

我意识到单个字母会注明导致错误的那个,因为它正在寻找其中包含两个字符的东西,并且每当有一个字母变量进来时都必须抛出错误。
将“A”,“B”,“C”等切换为“An”,“Bn”,“Cn”等固定它。

答案 1 :(得分:0)

查看2个控制台日志。 方括号之间是数组键,而不是数组值。 这意味着此notesArray["A"]实际上就是notesArray[0]



var notesArray = ["A","Bf","B","C","Cs","D","Ef","E","F","Fs","G","Gs"];
console.log(notesArray[0]);
console.log(notesArray["A"]);




让您轻松找到接下来要执行的步骤。 如果您仍想使用notesArray["A"],请定义并清空数组,然后分配键和值对,如下所示:notesArray["A"] = "A"