Array.prototype.map()은 화살표 함수의 반환 값을 예상합니다. 수정
Javascript에서 ” Array.prototype.map()은 Arrow Function의 반환 값을 기대합니다 “라는 오류 메시지가 나타날 수 있습니다. 이 문제에 직면할 수 있는 시나리오는 여러 가지가 있으며 이 문제를 우회하는 방법도 다양합니다. 일반적으로 ” Array.prototype.map() ” 함수를 사용하다가 코드 실행 중에 아무것도 반환하지 않는 경우(null)입니다. 그렇지 않고 필터 방법과 관련된 이전 단계에서 실수를 한 경우에도 동일한 오류 메시지가 나타날 수 있습니다.
수정 – 1 괄호 바꾸기
일반적으로 코드에 작성된 괄호는 오류를 유발하지 않습니다. 하지만 이 경우에는 코드에서 () 대신 {}를 사용합니다.
예 – 이 코드 조각 –
{
If (Object.keys(t.pr.part).map((par) => {
if(t.pr.part[par].user_identifiant === getUrlParams(window.location.hash).user_identifiant)
this.setState({
par:t.pr.part[부분].id_user
})
})
}
코드의 이 부분은 ” 화살표 함수에서 값을 반환할 것으로 예상됩니다 “라는 메시지를 받게 됩니다. 이 문제를 해결하려면 코드에서 “ ({ ”를 “ (( ”)로 변경하면 됩니다.
코드 조각은 다음과 같습니다.
Object.keys(t.pr.part).map((par) => {
if(t.pr.part[par].user_identifiant === getUrlParams(window.location.hash).user_identifiant)
this.setState((
par:t.pr.part[부분].id_user
))
)}
))
이렇게 하면 코드 문제를 해결할 수 있습니다.
수정 2 – Array.map 대신 ForEach 사용
Array.map 함수를 사용하는 대신 코드에서 Array.ForEach 함수를 사용하면 동일한 결과를 얻을 수 있습니다.
코드의 특정 함수가 값을 반환할 필요가 없는 경우 map 메서드를 사용하는 대신 Foreach 함수를 사용할 수 있습니다.
예 –
ListService?.map((service, j) => {
반품 (
<주요 서비스 키={service.id} {…{service, num: j }} />
)
})
기본 지도 기능을 교체하고 다음과 같은 방법으로 코드를 변경할 수 있습니다.
ListService?.forEach((item) => {
csvData.push({
“이름”: 항목?.이름,
“작업”: 항목?.desc,
})
})
이렇게 하면 Array.map 함수를 완전히 우회하여 반환 값 메시지를 받는 것을 피할 수 있습니다.
수정 3 – null 값 반환
Array.map 함수가 값을 반복할 수 없는 경우 코드 끝에 else 조건을 포함하고 null 값을 반환하도록 해야 합니다.
많이 쉽다. 이것만 포함하세요 –
else {
null을 반환합니다:
}
}
괄호에 주의하고 코드를 실행해 보세요. 다음으로 코드를 컴파일하고 실행하고 테스트합니다.
코드가 실패할 때마다 ” Array.prototype.map()은 Arrow Function에서 반환 값을 기대합니다 ” 오류 메시지가 아니라 최소한 null 값을 반복합니다.
수정 4 – 필터 코드 사용
이 문제를 처리하는 또 다른 방법이 있습니다. 일부 매개변수를 기반으로 값을 분리해야 하는 경우 Array.prototype.map() 대신 ” ArrayPrototype.filter() “를 사용합니다.
이 코드의 주요 구문은 –
let newArray = array.filter(callback(element[, index[, array]])[, thisArg])
이는 지정된 함수의 조건을 만족하는 전체 데이터 집합을 필터링할 수 있는 내장된 방법입니다.
다음은 Javascript에서 반환 값 메시지 문제를 해결할 수 있는 방법입니다.
답글 남기기