======JavaScript Array Iteration====== * description : JavaScript Array Iteration * author : 오션 * email : shlim@repia.com * lastupdate : 2021-05-06 \\ ====The Source of this article=== [[https://www.w3schools.com/js/js_array_iteration.asp|JavaScript Array Iteration]] \\ 배열 반복 함수(Array iteration methods)는 모든 배열 항목에서 작동합니다.\\ =====Array.forEach()===== %%forEach()%% 메서드는 각 배열 요소에 대해 한 번씩 함수(콜백 함수, a callback function)를 호출합니다.\\ ====Example==== let txt = ""; let numbers = [45, 4, 9, 16, 25]; numbers.forEach(myFunction); document.getElementById("demo").innerHTML = txt; function myFunction(value, index, array) { txt = txt + value + "\, " // 45, 4, 9, 16, 25, } \\ 상기 예제의 함수는 다음과 같은 3개의 인수(arguments)를 가집니다. * 항목의 값 (The item value) * 항목의 인덱스 (The item index) * 배열 자체 (The array itself) 위의 예제에서는 값 매개변수(value parameter)만을 사용합니다. 다음과 같이 다시 작성할 수 있습니다.\\ ====Example==== let txt = ""; let numbers = [45, 4, 9, 16, 25]; numbers.forEach(myFunction); document.getElementById("demo").innerHTML = txt; function myFunction(value) { txt = txt + value + "\, " // 45, 4, 9, 16, 25, } =====Array.map()===== ''%%map()%%'' 메서드는 각 배열 요소에 대해 함수를 실행하여 새 배열을 만듭니다.\\ \\ ''%%map()%%'' 메서드는 값이 없는 배열 요소에 대해 함수를 실행하지 않습니다.\\ \\ ''%%map()%%'' 메서드는 기존 배열을 변경하지 않습니다.\\ \\ 다음 예제에서는 각 배열 값에 2를 곱합니다.\\ ====Example==== let numbers1 = [45, 4, 9, 16, 25]; let numbers2 = numbers1.map(myFunction); document.getElementById("demo").innerHTML = numbers2; // 90,8,18,32,50 function myFunction(value, index, array) { return value * 2; } console.log(numbers1); // [45, 4, 9, 16, 25] console.log(numbers2); // [90, 8, 18, 32, 50] \\ 이 함수는 3 개의 인수를 가집니다.\\ * 항목 값 (The item value) * 항목 색인 (The item index) * 배열 자체 (The array itself) 콜백 함수가 value 매개변수만 사용하는 경우, index 및 array 매개변수를 생략할 수 있습니다.\\ ====Example==== let numbers1 = [45, 4, 9, 16, 25]; let numbers2 = numbers1.map(myFunction); document.getElementById("demo").innerHTML = numbers2; // 90,8,18,32,50 function myFunction(value) { return value * 2; } console.log(numbers1); // [45, 4, 9, 16, 25] console.log(numbers2); // [90, 8, 18, 32, 50] =====Array.filter()===== ''%%filter()%%'' 메서드는 테스트를 통과한 배열 요소로 새 배열을 만듭니다.\\ \\ 다음 예제는 값이 18보다 큰 요소에서 새 배열을 만듭니다.\\ ====Example==== let numbers = [45, 4, 9, 16, 25]; let over18 = numbers.filter(myFunction); document.getElementById("demo").innerHTML = over18; // 45,25 function myFunction(value, index, array) { return value > 18; } console.log(numbers); //  [45, 4, 9, 16, 25] console.log(over18); //  [45, 25] \\ 이 함수는 3 개의 인수를 가집니다.\\ * 항목 값 (The item value) * 항목 색인 (The item index) * 배열 자체 (The array itself) 위의 예제에서, 콜백 함수는 인덱스 및 배열 매개 변수를 사용하지 않으므로 생략할 수 있습니다.\\ ====Example==== let numbers = [45, 4, 9, 16, 25]; let over18 = numbers.filter(myFunction); document.getElementById("demo").innerHTML = over18; // 45,25 function myFunction(value) { return value > 18; } console.log(numbers); //  [45, 4, 9, 16, 25] console.log(over18); //  [45, 25] =====Array.reduce()===== ''%%reduce()%%'' 메서드는 각 배열 요소에서 함수를 실행하여, 단일 값을 생성(축소)합니다.\\ \\ ''%%reduce()%%'' 메서드는 배열에서 왼쪽에서 오른쪽으로 작동합니다. ''%%reduceRight()%%''도 참조하십시오.\\ \\ ''%%reduce()%%'' 메서드는 기존 배열을 줄이지 않습니다.\\ \\ 다음 예제는 배열에 있는 모든 숫자의 합계를 찾습니다.\\ ====Example==== let numbers = [45, 4, 9, 16, 25]; let sum = numbers.reduce(myFunction); document.getElementById("demo").innerHTML = "The sum is " + sum; // The sum is 99 function myFunction(total, value, index, array) { return total + value; } console.log(numbers); // [45, 4, 9, 16, 25] console.log(sum); // 99 \\ 이 함수는 4 개의 인수를 사용합니다.\\ * 합계 (초기 값 / 이전에 반환 된 값) ( The total(the initial value / previously returned value) ) * 항목 값 ( The item value ) * 항목 색인 ( The item index ) * 배열 자체 ( The array itself ) 위의 예제에서는 인덱스 및 배열 매개변수를 사용하지 않습니다. 다음과 같이 다시 작성할 수 있습니다:\\ ====Example==== let numbers = [45, 4, 9, 16, 25]; let sum = numbers.reduce(myFunction); document.getElementById("demo").innerHTML = "The sum is " + sum; // The sum is 99 function myFunction(total, value) { return total + value; } console.log(numbers); // [45, 4, 9, 16, 25] console.log(sum); // 99 \\ ''%%reduce()%%'' 메서드는 초기 값(initial value)을 받을 수 있습니다.\\ ====Example==== let numbers = [45, 4, 9, 16, 25]; let sum = numbers.reduce(myFunction, 100); document.getElementById("demo").innerHTML = "The sum is " + sum; // The sum is 199 function myFunction(total, value) { return total + value; } console.log(numbers); // [45, 4, 9, 16, 25] console.log(sum); // 199 =====Array.reduceRight()===== ''%%reduceRight()%%'' 메서드는 각 배열 요소에서 함수를 실행하여 단일 값을 생성 (축소)합니다.\\ \\ ''%%reduceRight()%%''는 배열에서 오른쪽에서 왼쪽으로 작동합니다. ''%%reduce()%%''도 참조하십시오.\\ \\ ''%%reduceRight()%%'' 메서드는 기존 배열을 줄이지 않습니다.\\ \\ 다음 예제는 배열에 있는 모든 숫자의 합계를 찾습니다.\\ ====Example==== let numbers = [45, 4, 9, 16, 25]; let sum = numbers.reduce(myFunction); document.getElementById("demo").innerHTML = "The sum is " + sum; // The sum is 99 function myFunction(total, value, index, array) { return total + value; } console.log(numbers); // [45, 4, 9, 16, 25] console.log(sum); // 99 \\ 이 함수는 4 개의 인수를 사용합니다.\\ * 합계 (초기 값 / 이전에 반환 된 값) * 항목 값 * 항목 색인 * 배열 자체 위의 예제에서는 인덱스 및 배열 매개변수를 사용하지 않습니다. 다음과 같이 다시 작성할 수 있습니다.\\ ====Example==== let numbers = [45, 4, 9, 16, 25]; let sum = numbers.reduce(myFunction); document.getElementById("demo").innerHTML = "The sum is " + sum; // The sum is 99 function myFunction(total, value) { return total + value; } console.log(numbers); // [45, 4, 9, 16, 25] console.log(sum); // 99 =====Array.every()===== ''%%every()%%'' 메서드는 모든 배열 값이 테스트를 통과하는지 확인합니다.\\ \\ 다음 예제에서는 모든 배열 값이 18보다 큰지 확인합니다.\\ ====Example==== let numbers = [45, 4, 9, 16, 25]; let allOver18 = numbers.every(myFunction); document.getElementById("demo").innerHTML = "All over 18 is " + allOver18; // All over 18 is false function myFunction(value, index, array) { return value > 18; } console.log(numbers); // [45, 4, 9, 16, 25] console.log(allOver18); // false \\ 이 함수는 3 개의 인수를 가집니다.\\ * 항목 값 * 항목 색인 * 배열 자체 콜백 함수가 첫 번째 매개변수 (값)만 사용하는 경우, 다른 매개 변수는 생략 할 수 있습니다.\\ ====Example==== let numbers = [45, 4, 9, 16, 25]; let allOver18 = numbers.every(myFunction); document.getElementById("demo").innerHTML = "All over 18 is " + allOver18; // All over 18 is false function myFunction(value) { return value > 18; } console.log(numbers); // [45, 4, 9, 16, 25] console.log(allOver18); // false \\ ''%%Array.some()%%''은 Internet Explorer 8 이하를 제외한 모든 브라우저에서 지원됩니다.\\ ( Chrome Yes, Edge 9.0, Firefox Yes, Safari Yes, Opera Yes )\\ =====Array.some()===== ''%%some()%%'' 메서드는 일부 배열 값이 테스트를 통과하는지 확인합니다.\\ \\ 다음 예제에서는 일부 배열 값이 18보다 큰지 확인합니다.\\ ====Example==== let numbers = [45, 4, 9, 16, 25]; let someOver18 = numbers.some(myFunction); document.getElementById("demo").innerHTML = "Some over 18 is " + someOver18; // Some over 18 is true function myFunction(value, index, array) { return value > 18; } console.log(numbers); // [45, 4, 9, 16, 25] console.log(someOver18); // true \\ 이 함수는 3 개의 인수를 취합니다.\\ * 항목 값 * 항목 색인 * 배열 자체 ''%%Array.some()%%''은 Internet Explorer 8 이하를 제외한 모든 브라우저에서 지원됩니다.\\ ( Chrome Yes, Edge 9.0, Firefox Yes, Safari Yes, Opera Yes )\\ =====Array.indexOf()===== ''%%indexOf()%%'' 메서드는 배열에서 요소 값을 검색하고 해당 위치를 반환합니다.\\ \\ **Note:** 첫 번째 항목의 위치는 0이고, 두 번째 항목의 위치는 1입니다.\\ ====Example==== 배열에서 "Apple"항목 검색:\\ let fruits = ["Apple", "Orange", "Apple", "Mango"]; let a = fruits.indexOf("Apple"); document.getElementById("demo").innerHTML = "Apple is found in position " + a; // Apple is found in position 0 console.log(fruits); // ["Apple", "Orange", "Apple", "Mango"] console.log(a); // 0 \\ ''%%Array.indexOf()%%''는 Internet Explorer 8 이하를 제외한 모든 브라우저에서 지원됩니다.\\ ( Chrome Yes, Edge 9.0, Firefox Yes, Safari Yes, Opera Yes )\\ ====Syntax==== array.indexOf(item, start) ^ item ^ 필수. 검색할 항목 ^ | start | 선택. 검색을 시작할 위치. 음수 값은 끝에서부터 계산하여 지정된 위치에서 시작하고 끝까지 검색합니다. | \\ ''%%Array.indexOf()%%''는 항목을 찾을 수 없는 경우 -1을 반환합니다.\\ \\ 항목이 두 번 이상 있으면, 첫 번째 발생 위치를 반환합니다.\\ =====Array.lastIndexOf()===== ''%%Array.lastIndexOf()%%''는 ''%%Array.indexOf()%%''와 동일하지만, 지정된 요소의 마지막 발생 위치를 반환합니다.\\ ====Example==== 배열에서 "Apple"항목 검색:\\ let fruits = ["Apple", "Orange", "Apple", "Mango"]; let a = fruits.lastIndexOf("Apple"); document.getElementById("demo").innerHTML = "Apple is found in position " + (a + 1); // Apple is found in position 3 \\ ''%%Array.lastIndexOf()%%''는 Internet Explorer 8 이하를 제외한 모든 브라우저에서 지원됩니다.\\ ( Chrome Yes, Edge 9.0, Firefox Yes, Safari Yes, Opera Yes )\\ ====Syntax==== array.lastIndexOf(item, start) ^ item ^ 필수. 검색할 항목 ^ | start | 선택. 검색을 시작할 위치. 음수 값은 끝에서부터 계산하여 지정된 위치에서 시작하고 처음부터 검색 | =====Array.find()===== ''%%find()%%'' 메서드는 테스트 함수를 통과하는 첫 번째 배열 요소의 값을 반환합니다.\\ \\ 다음 예제는 18보다 큰 첫 번째 요소를 찾습니다 (값 반환).\\ ====Example==== let numbers = [4, 9, 16, 25, 29]; let first = numbers.find(myFunction); document.getElementById("demo").innerHTML = "First number over 18 is " + first; function myFunction(value, index, array) { return value > 18; } \\ 이 함수는 3 개의 인수를 가집니다.\\ * 항목 값 * 항목 색인 * 배열 자체 ''%%Array.find()%%''는 이전 브라우저에서 지원되지 않습니다. 완전히 지원되는 첫 번째 브라우저 버전은 다음과 같습니다.\\ ( Chrome 45, Edge 12, Firefox 25, Safari 8, Opera 32 )\\ =====Array.findIndex()===== ''%%findIndex()%%'' 메서드는 테스트 함수를 통과하는 첫 번째 배열 요소의 인덱스를 반환합니다.\\ \\ 다음 예제에서는 18보다 큰 첫 번째 요소의 인덱스를 찾습니다.\\ ====Example==== let numbers = [4, 9, 16, 25, 29]; let first = numbers.findIndex(myFunction); document.getElementById("demo").innerHTML = "First number over 18 has index " + first; // First number over 18 has index 3 function myFunction(value, index, array) { return value > 18; } \\ 이 함수는 3 개의 인수를 가집니다.\\ * 항목 값 * 항목 색인 * 배열 자체 ''%%Array.findIndex()%%''는 이전 브라우저에서 지원되지 않습니다. 완전히 지원되는 첫 번째 브라우저 버전은 다음과 같습니다.\\ ( Chrome 45, Edge 12, Firefox 25, Safari 8, Opera 32 )\\ {{tag>오션 Javascript Array Iteration Methods}}