내 문제는 우리가 현재 프로젝트에 대한 2K JS 라인을 가지고 JSHint won't let me use 'forEach' in a 'for' loopJshint : 루프 (이슈) 내에서 Anonmyous 기능이
유사하다 최근 jshint
검사를 포함, 하나의 공통 문제는 아래의 샘플 코드는
Don't make functions within a loop.
샘플 코드 :
var s1 = '12345'.split('');
var oo = { a: s1, b: s1, c: s1};
function odd(obj){
var tmp = [];
for (var key in obj){
obj[key].forEach(function(val){
if(val%2>0) tmp.push(val);
});
}
return tmp;
}
odd(oo);
내 수정했다 :
function odd(obj){
var tmp = [], tmpFn;
tmpFn = function(val){
if(val%2>0) tmp.push(val);
};
for (var key in obj){
obj[key].forEach(tmpFn);
}
return tmp;
}
이 코드가 작동하는지는 확인했지만 이전 코드를 수정하는 올바른 방법인지 확실하지 않습니다.이 수정 프로그램에서 원하지 않는 부작용이 있습니까? 또는 이전 코드가 훨씬 더 깨끗해 보인 것처럼 경고를 무시해야합니까?
편집 : 나는 그것으로 루프에 대한 업데이트 된 샘플 코드를 놓쳤다.
코드를 복사/붙여 넣을 때이 오류가 표시되지 않습니다. 문제를 표시하는보다 완벽한 코드 샘플을 보여줄 수 있습니까? –
그 코드는 * 루프에 함수를 만드는 것이 아니며, 루프에'function odd() {...} '가 없으면 훨씬 더 심각한 구문 오류입니다 : Function * declarations * are not allowed 내부의 제어 구조이기 때문에 실행 컨텍스트의 최상위 레벨에 있어야합니다 (예 : 함수 또는 전역 컨텍스트의 모든 제어 구조 외부). –
사이드 노트 : 나는 그것을 위해'filter'를 사용할 것입니다. –