从数组中复制值时会跳过某些值
Some values are being skipped when copying value from an array
我有一个项目代码数组,用于与一列项目代码进行匹配,因此如果它找到匹配的单元格,它将价格从价格数组复制到价格列。代码如下:
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();
}
}
}
起初我认为代码有效,但我注意到由于某种原因,一些项目代码被跳过了。我确实确认了代码和价格值确实存在于数组中,所以我不确定是什么会导致跳过。
编辑:我可能已经找到了真正的原因。我注意到当它在代码数组中找到不匹配的项目代码时,它会停止复制。一旦我修复了项目代码,一切都很好。如果找不到匹配项,有没有办法让循环继续或跳过项目代码?
这是因为
您在循环时删除了数组中的项目。
我的意思是以下行
codearray.shift();
您可以通过解决方案解决此问题,如下所述
var copiedCodeArray = codearray.slice();
for(z = 3;z<copiedCodeArray.length;z++){
// paste the rest of the code here
相关文章:
- d3:用更多维数组复制路径
- $.get-json数组复制
- 用javascript将一个对象数组复制到另一个数组中(深度复制)
- 将数组复制到另一个数组中,并将缺少的字段替换为 null
- 仅将对象的 1 个属性从对象数组复制到新数组
- 具有嵌套数组的绝对无引用的数组复制
- 如何将数组复制到数组
- 将特定对象(根据给定条件)从对象数组复制到angularJS中的另一个数组中
- Javascript数组复制,concat和slice,哪个更好
- 将数组复制到“;这个“;变量(创建一个类似数组的对象)
- 角度,数组复制太迟
- Node.js添加相对路径字符串到数组复制斜杠
- 在AngularJS中将值从对象数组复制到输入字段
- 将2D数组复制到另一个工作表
- 在JQuery中,将一个对象数组复制到另一个数组是它的引用类型
- 如何将函数返回的数组复制到JavaScript中的另一个数组中
- 这是JS数组复制在没有循环展开的情况下最快的速度吗?
- 将数组复制到变量,同时排除项-性能
- 将PHP数组复制到javascript数组中
- JavaScript中使用自执行内部函数的数组复制函数