gpt4 book ai didi

javascript - 使用sharepointplus时未定义的断码处理

转载 作者:行者123 更新时间:2023-11-30 05:45:18 24 4
gpt4 key购买 nike

编辑:请参阅下面 John S. 的回答,了解这个明显问题背后的真正问题!

我正在使用 sharepointplus 构建一个动态表达式。它应该返回一个逻辑值,它就是这样做的。我已将它移到一个变量中,因为我经常使用它(将其作为 if 的条件引用)。问题是,显然加号正在停止其余代码的处理。这是两个错误的片段(控制台中没有错误):

for (var i=0; i < data.length; i++){
var category_equal_test = ((data[i].getAttribute("category")) == (data[i+1].getAttribute("category")));

for (var i=0; i < data.length; i++){
var j=i+1;
var category_equal_test = ((data[i].getAttribute("category")) == (data[j].getAttribute("category")));

它们之间真的没有区别,但有那么一刻我想我可以逃脱惩罚。这是一段不会中断处理的代码(但当然这段代码毫无意义):

for (var i=0; i < data.length; i++){
var category_equal_test = ((data[i].getAttribute("category")) == (data[i].getAttribute("category")));

在这两种损坏代码的情况下,console.log(category_equal_test) 输出我正在寻找的逻辑值集。

我认为这是我的某种能力,所以请赐教!谢谢。

最佳答案

发生这种情况是因为在循环的最后,data[i + 1] 变为undefined 而您不能执行 getAttributeundefined,所以它抛出一个 TypeError

var x; x.getAttribute('foo');
// TypeError: Cannot call method 'getAttribute' of undefined

要解决此问题,请让您的循环提前结束一次迭代;

for (var i = 0; i < data.length - 1; i++) {
// ...
}

至于为什么您没有在控制台中收到错误,代码必须包含在某处的 try..catch 中。

关于javascript - 使用sharepointplus时未定义的断码处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18293821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com