今天我为一些编程竞赛编写了代码。当我运行它时,我因为错误而感到惊讶。无法读取未定义的属性“forEach”在一个看起来像“无错误空间”的地方。
sum = 0
[-1,0,1].forEach(deltar =>{...});
当我在后面添加分号时sum
变量赋值代码开始工作。
sum = 0;
[-1,0,1].forEach(deltar =>{...});
让人非常好奇的是JS解释器在这里不匹配的行为是什么?怎么办JS搞乱integer and array之后?
这是函数的完整代码,用于完整描述变量声明。
function boxBlur(img) {
let [h,w] = [img.length-1,img[0].length-1];
let [answer,sum,tmp] = [[],0,[]]
for(let row = 1; row < h; row += 1){
tmp = []
for(let clmn = 1; clmn < w; clmn += 1){
sum = 0;
[-1,0,1].forEach(deltar =>{
[-1,0,1].forEach(deltac =>{
sum += img[row+deltar][clmn+deltac]
});
});
tmp.push(parseInt(sum/9));
}
answer.push(tmp);
}
return answer;
}