我有一系列项目代码用于匹配项目代码列,因此如果找到匹配的单元格,它会将价格从价格数组复制到价格列。这是代码:
for (z = 3; z < codearray.length; z++) {
for (w = 0; w < orderingValue.length; w++) {
if (parseInt(orderingValue[w][codecol]) == parseInt(codearray[0])) {
copyrow = w + 1;
orderingss.getRange(copyrow, salescol).setValue(pricearray[0]);
codearray.shift();
pricearray.shift();
}
}
}
起初我认为代码有效,但我注意到由于某种原因跳过了一些项目代码。我确实确认了代码和价格确实存在于数组中,所以我不确定是什么原因导致跳过。
编辑:我可能找到了真正的原因。我注意到它在代码阵列中发现不匹配的项目代码时会停止复制。一旦我修复了项目代码,一切都很顺利。有没有办法让循环继续或跳过项目代码,如果找不到匹配?
答案 0 :(得分:1)
这是因为你在循环时删除了数组中的项目。
我的意思是以下一行
codearray.shift();
您可以通过以下解决方案解决此问题
var copiedCodeArray = codearray.slice();
for(z = 3;z<copiedCodeArray.length;z++){
// paste the rest of the code here