Javascript: forEach는 함수가 아니며 어떻게 해야 합니까?

2190 단어

루프란?



루프는 특정 조건이 충족되는 한 컴퓨터 프로그램이 동일한 명령 세트를 반복해서 실행하도록 하는 프로그래밍 명령입니다.

전통적인 루프



함수형 프로그래밍의 전통적인 루프는 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 배열로 구문 분석했는지 확인하십시오.

좋은 웹페이지 즐겨찾기