설명에 대해 forEach (),지도 (), 모든 (), 일부 () 및 필터 () 사용
이 글의 시작에서 당신에게 질문을합니다 :
자바 스크립트에서 어떻게 배열의 각각의 데이터를 처리하기 위해?
하나는이 잘 통해 루프에 대한 간단한 직접 A가 아니라고 말할 수있다.
예, 사실, 이것은 가장 일반적인 방법입니다.
그러나 그 이상, ES5는 또한 제목과 같은 배열을 처리 할 수있는 편리한 방법을 제공합니다.
다음으로, 이러한 특정 방법을 설명하기 위해 몇 가지 간단한 예제를 통해 이동합니다.
어레이를 이송하는 데 사용하게 foreach (), 어떠한 리턴 값 없음
여기서 제 주어진 어레이 (이하, 일반적인 예) :
했다 도착 = 1 -2,3,4-, -5];
그럼 난 일을해야는 그 두 배의 배열의 각 항목.
arr.forEach ( 함수 (항목, 인덱스 어레이) { 배열 [인덱스] = 항목 * 2 ; }); CONSOLE.LOG (도착); // [2 -4,6,8 -10]
어레이 탐색 항목의 인덱스가 현재의 소자 어레이 순회 인덱스 및이 이송되면 때 foreach는 ()는 익명의 기능을 포함하는 파라미터로 익명 함수를 전달할 수 있고, 볼 수 차례 현재 요소를 나타내는 세 개의 인자를 취 어레이 배열. 이러한 세 가지 매개 변수를 사용하면 우리는 각 배열 요소를 배가됩니다 예를 들어 많은 일을 수행 할 수 있습니다, 당신은 첫 번째 매개 변수 항목을 사용해야합니다. 그러나, 단지 항목이없는 수를 곱한, 우리는 우리가 다음 두 개의 매개 변수의 인덱스와 배열을 사용해야 원래 배열에 할당해야합니다.
상기 논의에서, 어레이 [색인] 항목의 전부 동일하다.
arr.forEach ( 함수 (항목, 인덱스 어레이) { CONSOLE.LOG (배열 [인덱스] === 항목); // 진정한 });
두,지도 (), 새로운 배열은 후 공정 수익률을 반복하는 데 사용됩니다
VAR newArr arr.map = ( 함수 (항목, 인덱스 어레이) { 반환 항목 * 2 ; }); CONSOLE.LOG (newArr); // [2 -4,6,8 -10]
그것은 방법 및 대해 forEach () 함수는 새로운 배열을 반환) 그지도 (를 제외하고, 유사한 반환 값이 있음을 알 수있다, 이러한 치료 후 배열은 원래 배열에 영향을 미치지 않습니다.
셋, 각 ()의 요소는 조건을 만족하는지 여부를 결정하는 상기 어레이의 각각은 부울 값을 반환
VAR isEvery arr.every = ( 함수 (항목, 인덱스 어레이) { 반환 항목> 0 ; }); CONSOLE.LOG (isEvery); // 거짓
당신은 명확하지 않다, 예를 배열 편곡의 요소가 긍정적 인 여부를 결정하는 것입니다 볼 수 있습니다, 그래서 마지막 메소드는 false를 반환합니다.
조건을 만족하는 프리젠 스 엘리먼트 배열 여부를 판정 네 일부는 ()은 부울 값을 반환
VAR isSome arr.some = ( 함수 (항목, 인덱스 어레이) { 반환 항목 <0 ; }); CONSOLE.LOG (isSome); // 사실
이 방법 및 모든 ()는 유사하게, 예를 들어 배열의 도착에 부정적인 요소가 있는지 여부를 결정하는 것을 알 수 있으며, 그 존재는, 단부에있어서 true를 반환 분명하다.
다섯, 필터 ()의 조건을 만족하는 배열 요소를 스크리닝하는 새로운 배열 스크리닝 후에 반환
VAR의 마이너스 arr.filter = ( 함수 (항목, 인덱스 어레이) { 반환 항목 <0 ; }); CONSOLE.LOG (마이너스); // [-2, -5]
알 수 있으며, 실시 예는 모두 음의 도착 어레이를 필터링하고,이 방법은 결국 스크리닝 후에 새로운 배열을 반환한다 [-2, -5].
주 : 파라미터로서 익명 함수를 전달 이외의 상기 다섯 가지 방법, 두번째 파라미터도 전송 될 수있다, 예를 들면 함수 익명이 점에 대해 지정된 파라미터 :
// 만 익명 함수 패스 arr.forEach ( 함수 (아이템, 인덱스 어레이) { CONSOLE.LOG를 ( 이 본 ); // 윈도우 });
// 두 개의 매개 변수 전달 arr.forEach ( 함수 (아이템, 인덱스 어레이) { CONSOLE.LOG ( 이 본를 ) // [. 1, -2 ,. 3 ,. 4, -5] }, ARR);
호환성 : 위의 방법은 ES5 방법에 속하는, 그것은는 IE8로 브라우저 아래 호환되지 않기 때문에.
키 요약 :
① 대해 forEach ()가 모든 (새로운 배열을 반환 (),지도 ()와 필터 값을 반환하지 않습니다) 일부는 () 부울 값 반환
② 윈도우의 기본이 점에서 익명 함수를, 그것이 두 번째 매개 변수에 의해 변경 될 수 있습니다 전달
③ 오 탐색 방법은 ES5 방법의 모든 종류의