이 질문은 잠시 동안 있었지만 내 사례를 해결할 수있는 대답을 찾지 못했습니다 (미안하지만 놓친 경우). 루프 내에서 기능을하지 마십시오 :jshint - Array.find를 사용하여 루프 내에서 함수를 작성하지 마십시오.
for(let i=0; i<array.length; i++) {
let value = array[i];
let anotherValue = anotherArray.find(val => val.key === value.key);
}
그 코드가 jshint이 경고가 발생 할 수 있습니다 :
어쨌든, 나는 다음과 같은 코드가 있습니다. (W083)
"for"범위 내에있는 변수에 대한 액세스가 필요하다는 사실 때문에 그 안에 함수가 선언되어 있어야합니다. 내가의 외부로 선언하면
let myFunc = (val) => {
//no value here to compare
}
for(let i=0; i<array.length; i++) {
let value = array[i];
let anotherValue = anotherArray.find(myFunc);
}
내가 값 변수에 액세스 할 수 없습니다
나는 다음과 같은 접근 방식을 시도했다. 당신은 value
을 여전히 기능을 가질 수 있도록하기 위해, 또는
array.forEach((value) => {
let anotherValue = anotherArray.find(val => val.key === value.key);
/* do anything with anotherValue */
}
curry your function을 할 수 있습니다 :
let myFunc = candidate => target => candidate.key === target.key;
for (let i = 0; i < array.length; i++) {
let anotherValue = anotherArray.find(myFunc(array[i]));
}
그럼에도 불구하고 다른 방법을
경고 메시지를 끄기 만하면됩니다. –
문제는 메시지가 아닙니다. 그렇게되면 쉽게 벗어날 수 있습니다. 나는 더 나은 구현이되어야한다고 생각합니다. –
귀하의 구현은 완벽합니다. –