初学者的问题,对象集合length属性 加法运行报错
发布于 3 天前 作者 feer 80 次浏览 来自 问答
5 回复

只有这么一点东西,看不出来问题。

按照你说的思路,检查索引,判断语句换一种写法,就正确了!如果是纯的索引问题,应该报错的是第一个引用到的grade属性,而不是第二个piece属性,总之这是一个神奇的问题!394~%6057~5%5DLX9M_1M_25%5B47 GH%5B)~R17Q8J2BATAEYGG(4U

要知道,数组是从 0 开始的。 length值 本来就比索引多1了, 1+length 最后会比索引值多 2, 所以会报那个错误!

而且为何还要计算 length 多此一举呢,直接轮询 materials_out 数据不就行了?

<tr  v-for="(mat, index)  in  materials_out" :key="index">
    <td>{{mat.grade}}</td>
    <td>{{mat.piece}}</td>
    <td>{{mat.weight}}</td>
</tr>

数组的索引值 是从 0 开始的。 length 值 本来就会比索引多1, 1+length 最后会比索引值多 2, 所以用 -1 并不准确,有时候需要 - 2。

建议使用 i 计算 的地方,直接用 materials_out[materials_out.length \- 1] 去操作就好了。

谢谢,才开始学习vue,以后还请多多指教

回到顶部