Javascript 为什么会出现未捕获的TypeError:无法读取属性';0';未定义的赋值?

Javascript 为什么会出现未捕获的TypeError:无法读取属性';0';未定义的赋值?,javascript,Javascript,我有: 这就抛出了错误 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].sa

我有:

这就抛出了错误

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']);

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

编辑:正如其他人所指出的,您有一个输入错误,但即使更正了输入错误,它也无法与您编写的代码一起工作

您试图访问无效的索引,因此出现错误。使用数组的
push
方法添加元素

lineItemsTracker[1]['sales_order_line_item_id'] = 'test';
解释:

1。当您创建一个类似
var lineItemTracker=new array()的数组时
lineItemTracker
创建了一个数组,但长度为
0

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

3.接下来,
lineItemsTracker[i]['sales\u order\u line\u item\u id']
这几行尝试访问
未定义的
对象上的属性
sales\u order\u line\u item\u id
,然后您将得到错误

未捕获类型错误:无法读取分配时未定义的属性“销售\订单\行\项目\ id”


你打错了。它应该是
var lineItemsTracker=new Array()


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

你有一个打字错误lineItemTracker v/s LineItemsTrackerit只是一个打字错误是的,很有眼光,但是即使在纠正了打字错误之后,它也不会起作用,因为我解释的原因。你完全正确。非常感谢。答案已接受。很好地捕获Hadas,但即使在更正了输入错误后,代码也不会工作,因为这不是将数组元素添加到空数组的方式。True。不过,错误消息会有所不同,可能是您无法读取未分配的属性“sales\u order\u line\u item\u id”,因为现在lineItemsTracker[0]将是未定义的对象。其实这并不重要:汉克斯。我接受了阿加洛的回答——如果没有其他的话,他是第一个到达那里的——但是投了赞成票。
var lineItemTracker = new Array();
lineItemsTracker.push(result[i].sales_order_line_item_id);