Javascript: forEach는 함수가 아니며 어떻게 해야 합니까?
루프란?
루프는 특정 조건이 충족되는 한 컴퓨터 프로그램이 동일한 명령 세트를 반복해서 실행하도록 하는 프로그래밍 명령입니다.
전통적인 루프
함수형 프로그래밍의 전통적인 루프는 for 루프와 while 루프입니다. 이러한 루프는 일련의 명령문 또는 명령을 반복적으로 실행하는 데 사용됩니다. for 루프는 특정 조건이 충족될 때까지 일련의 명령문을 실행하는 반면 while 루프는 조건이 참인 동안 일련의 명령문을 실행합니다.
Javascript forEach 루프
forEach 메소드는 배열의 각 항목에 대해 화살표 함수의 코드를 실행하는 ES6 자바스크립트 반복 추가입니다. 모든 유형 및 크기, Map 또는 Set의 배열을 반복하는 데 사용할 수 있습니다.
전통적인 "for 루프"와는 다릅니다. forEach는 다음 매개변수를 사용하여 배열의 각 요소에 대한 콜백 함수를 전달합니다. 현재 값(필수) - 현재 배열의 인덱스입니다.
const techBlog = ['Nerd', 'Level', 'Tech']
techBlog.forEach((item, index)=>{
console.log(index, item)
})
// Output
// =====
// 0 Nerd
// 1 Level
// 2 Tech
일반적인 오류 관련 - forEach:
아래 예제와 같이 forEach를 사용하면 "forEach는 함수가 아닙니다."라는 잡히지 않는 유형 오류를 생성합니다.
const nums = {
"number 1" :1,
"number 2": 2,
"number 3": 3,
"number 4":4
}
nums.forEach((num) => {
console.log(num);
});
// Output the error below image.
위 예제의 해당 사용 사례에서 객체와 함께 forEach를 사용할 수 있지만 직접 사용할 수는 없습니다. 키 배열 또는 배열과 유사한 객체를 반환하므로 내장된 키 객체와 함께 사용할 수 있는 간단한 수정을 위해 forEach에 직접 연결할 수 있습니다.
const nums = {
"number 1" :1,
"number 2": 2,
"number 3": 3,
"number 4":4
}
Object.keys(nums).forEach(key => {
console.log(key +" : "+ nums[key]);
});
// OR
Object.entries(nums).forEach(([key, value]) => {
console.log(key+" - "+value);
});
마무리 - 가장 일반적인 원인:
a- 배열, 맵 또는 집합 유형이 아닌 값에서 "forEach"를 호출하면 "forEach는 함수가 아닙니다."라는 오류가 발생합니다. 이를 수정하려면 대신 배열, 맵 또는 집합에서 사용되고 있는지 확인하십시오.
b- 개체를 console.log하고 배열, 맵 또는 집합 유형의 개체인지 확인할 수도 있습니다. 객체 유형이 객체인 경우 먼저 이러한 허용 유형인 "Array, Map 또는 Set"로 변환한 다음 여기에 forEach를 연결해야 합니다.
c- 원격 서버에서 가져온 경우 먼저 JSON 개체를 기본 JavaScript 배열로 구문 분석했는지 확인하십시오.
Reference
이 문제에 관하여(Javascript: forEach는 함수가 아니며 어떻게 해야 합니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aradwan20/javascript-foreach-is-not-a-function-and-what-to-do-4f4b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)