나는 .reduce()
으로 실험 중이며 아래의 테스트 코드에서 accumulator.key[index]
의 값을 1로 설정하려고 시도합니다. console.log
을 사용하면 해당 인덱스가 0에서 3까지 순환되고 있음을 알 수 있습니다. 그러나 내 코드는 accumulator.key[3]
만 값으로 설정합니다 1. 첫 번째 3 accumulator.key[index]
은 정의되지 않은 상태로 둡니다. 이것은 나에게 완전히 당혹 스럽다. 왜 4 키를 모두 1로 설정하지 않았는지 알 수 없습니다. 어떤 도움을 주셔서 감사합니다! 왜 reduce() 메서드에서 인덱스가 예기치 않게 작동합니까?
0
A
답변
2
"use strict";
var testArray = ['fe', 'fi', 'fo', 'fum'];
var output;
\t
output = testArray.reduce((accumulator, currentValue, index) => {
accumulator.key = [];
console.log(index);
accumulator.key[index] = 1;
return accumulator;
}, []);
console.log(output.key);
accumulator.key = []
에 모든 반복에 이전 배열 참조를 제거
key
특성 새로운
[]
에 할당합니다. 배열 대신 객체를 전달하고 배열에
key
속성을 정의하십시오.
var testArray = ['fe', 'fi', 'fo', 'fum'];
var output;
\t
output = testArray.reduce((accumulator, currentValue, index) => {
console.log(index);
accumulator.key[index] = 1;
return accumulator;
}, { key: [] });
console.log(output.key);
+0
절대적 정확! 나는 각 사이클을 리셋하고 있음을 간과했다. 고맙습니다! – DR01D
1
나는 배열에 .key
를 사용하는 사용 사례에 대해 확실하지 오전하지만 당신이 다음 결정 어떤 경우 단지 각각의 반복에 배열로 초기화하지 않습니다. 그리고 첫 번째 반복에서 정의되지 않은 것을 얻는 것을 두려워하면 대체 배열을 사용하십시오.
accumulator.key = (accumulator.key || []);
"use strict";
var testArray = ['fe', 'fi', 'fo', 'fum'];
var output;
\t
output = testArray.reduce((accumulator, currentValue, index) => {
accumulator.key = (accumulator.key || []);
console.log(index);
accumulator.key[index] = 1;
return accumulator;
}, []);
console.log(output.key);
+1
나는 대체로 생각하지 않았다. 훌륭한! – DR01D
관련 문제
- 1. numpy.bitwise_and.reduce가 예기치 않게 작동합니까?
- 2. 함수 내에서 "randint"함수가 예기치 않게 작동합니까?
- 3. 왜 내 함수가 예기치 않게 NULL을 반환합니까?
- 4. 왜 세션이 예기치 않게 asp.net에 있습니까?
- 5. 목록 용량 예기치 않게 증가하는 속성 .. 왜?
- 6. 이 작동하지 왜 연결이 예기치 않게
- 7. 예기치 않게 mod_rewrite가 실행됩니다.
- 8. reduce 메서드는 어떻게 작동합니까?
- 9. 박쥐 스크립트가 예기치 않게
- 10. 스레드가 예기치 않게
- 11. 예기치 않게 변수가 지워졌습니다.
- 12. 왜이 간단한 "확인"javascript 함수가 예기치 않게 작동합니까?
- 13. 셀레늄 RC가 예기치 않게 10 분 후 예기치 않게 종료됩니다.
- 14. 조건부 연산자로 배열의 요소를 선언하는 Javascript가 예기치 않게 작동합니까?
- 15. 예기치 않게 인스턴스 속성이로드되었습니다.
- 16. MySQL이 예기치 않게 충돌합니다.
- 17. 백본보기가 예기치 않게 업데이트되었습니다.
- 18. plugin_host가 예기치 않게 종료되었습니다.
- 19. 가 예기치 않게
- 20. 가 예기치 않게
- 21. RecyclerView가 예기치 않게 동작
- 22. 예기치 않게 XQuartz가 종료됩니다.
- 23. 예기치 않게 세션이 사라집니다.
- 24. 예기치 않게 변경 권한
- 25. 세마포어 예기치 않게 설정하기
- 26. NSString이 예기치 않게 __NSCFDictionary가됩니다.
- 27. 예기치 않게 Behat가 종료됩니다.
- 28. 예기치 않게 프로세스가 종료됩니다.
- 29. 예기치 않게 종료되는 LaunchDaemon
- 30. FileWriter가 예기치 않게 중지됩니다.
accumulator.key '= []'의 모든 단계에 .reduce '()' – Andreas