我有:
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';
产生错误。有解决方法吗?
答案 0 :(得分:4)
编辑:正如其他人所说,你有一个拼写错误,但即使在纠正错字后,它也无法使用您编写的代码。
您正在尝试访问无效索引,因此您收到错误。使用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']
此行尝试访问sales_order_line_item_id
对象上的属性undefined
,然后您将收到错误。
未捕获的TypeError:无法在分配时读取未定义的属性'sales_order_line_item_id'
答案 1 :(得分:3)
你有一个错字。它应该是var lineItemsTracker = new Array();
你的定义中没有s,但你在任何地方都引用了它