繁体   English   中英

为什么我会收到Uncaught TypeError:无法在分配时读取未定义的属性“ 0”?

[英]why am I getting Uncaught TypeError: Cannot read property '0' of undefined on assign?

我有:

var lineItemTracker = new Array();
lineItemsTracker[i]['sales_order_line_item_id'] = result[i].sales_order_line_item_id;

这引发错误

Uncaught TypeError: Cannot read property '0' of undefined on assign

如果我检查

console.log(result[i].sales_order_line_item_id);

然后我得到正确的结果。 当我检查

console.log('here ' + lineItemsTracker[i]['sales_order_line_item_id']);

我收到错误消息。

lineItemsTracker[1]['sales_order_line_item_id'] = 'test';

产生错误。 有解决方法吗?

编辑:正如其他人指出的那样,您有错字,但即使在纠正错字后,它也无法与您编写的代码一起使用。

您正在尝试访问无效的索引,结果您得到了错误。 使用Array的push方法添加元素。

var lineItemTracker = new Array();
lineItemsTracker.push(result[i].sales_order_line_item_id);

说明:

1.当创建像var lineItemTracker = new Array(); lineItemTracker创建一个数组,但长度为0

2.接下来,当您编写lineItemsTracker[i]这意味着您正在尝试访问索引i处的元素。 由于数组的长度为零,因此它将返回undefined因为在该索引处没有定义任何元素。

3.接下来, lineItemsTracker[i]['sales_order_line_item_id']这些行尝试访问undefined对象上的属性sales_order_line_item_id ,然后您将得到错误。

未捕获的TypeError:在分配时无法读取未定义的属性'sales_order_line_item_id'

你有错字 应该是var lineItemsTracker = new Array();

您在定义中没有s,但是在引用它的任何地方都放置了s

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM