JavaScript에서 연관 배열을 만드는 방법. JavaScript 정의 및 응용 프로그램에서 배열을 반복하는 모든 방법

마지막 업데이트: 2018년 3월 26일

Array 개체는 배열을 나타내며 배열을 조작할 수 있는 여러 속성과 메서드를 제공합니다.

어레이 초기화

대괄호나 Array 생성자를 사용하여 빈 배열을 만들 수 있습니다.

varusers = new Array(); var 사람들 = ; 콘솔 로그(사용자); // 배열 console.log(people); // 배열

몇 가지 요소로 배열을 즉시 초기화할 수 있습니다.

Var users = new Array("Tom", "Bill", "Alice"); var people = ["샘", "존", "케이트"]; 콘솔 로그(사용자); // ["톰", "빌", "앨리스"] console.log(people); // ["샘", "존", "케이트"]

배열을 정의하고 배열에 새 요소를 정의할 수 있습니다.

varusers = new Array(); 사용자 = "톰"; 사용자 = "케이트"; 콘솔 로그(사용자); // "톰" console.log(users); // 한정되지 않은

기본적으로 배열이 길이가 0으로 생성되는 것은 중요하지 않습니다. 인덱스의 도움으로 배열의 특정 인덱스를 하나 또는 다른 요소로 대체할 수 있습니다.

길이

배열의 길이를 확인하려면 length 속성을 사용하십시오.

var fruit = new Array(); 과일 = "사과"; 과일 = "배"; 과일 = "자두"; document.write("배열 과일 " + fruit.length + " 요소:
"); for(var i=0; i< fruit.length; i++) document.write(fruit[i] + "
");

실제로 배열의 길이는 마지막 요소의 인덱스에 1을 더한 값이 됩니다. 예를 들어:

varusers = new Array(); // 배열에 0개의 요소가 있습니다. users = "Tom"; 사용자 = "케이트"; 사용자 = "샘"; for(var i=0; i

브라우저 출력:

톰 케이트 2020 기타 샘

인덱스 2와 3에 대한 요소를 추가하지 않았지만 이 경우 배열의 길이는 숫자 5가 됩니다. 인덱스 2와 3에 있는 요소의 값은 undefined입니다.

배열을 복사합니다. 일부분()

배열 복사는 얕거나 얕고(얕은 복사) 깊은 복사(깊은 복사)가 될 수 있습니다.

얕은 복사의 경우 배열을 저장하는 다른 변수의 값을 변수에 할당하는 것으로 충분합니다.

var users = ["톰", "샘", "빌"]; 콘솔 로그(사용자); // ["Tom", "Sam", "Bill"] var people = 사용자; // 얕은 복사 people = "Mike"; // 두 번째 요소 변경 console.log(users); // ["톰", "마이크", "빌"]

이 경우 복사된 후 people 변수는 users 변수와 동일한 배열을 가리킵니다. 따라서 people의 요소를 변경하면 실제로 동일한 배열이기 때문에 users의 요소도 변경됩니다.

이 동작이 항상 바람직한 것은 아닙니다. 예를 들어 변수가 복사 후 별도의 배열을 가리키기를 원합니다. 이 경우에는 slice() 메서드를 사용하여 전체 복사를 사용할 수 있습니다.

var users = ["톰", "샘", "빌"]; 콘솔 로그(사용자); // ["톰", "샘", "빌"] var people = users.slice(); // deep copy people = "마이크"; // 두 번째 요소 변경 console.log(users); // ["톰", "샘", "빌"] console.log(people); // ["톰", "마이크", "빌"]

이 경우 복사 후 변수는 다른 배열을 가리키며 서로 별도로 변경할 수 있습니다.

또한, slice() 메서드를 사용하면 배열의 일부를 복사할 수 있습니다.

Var users = ["톰", "샘", "빌", "앨리스", "케이트"]; var people = users.slice(1, 4); 콘솔 로그(사람); // ["샘", "빌", "앨리스"]

슬라이스() 메서드는 배열에서 값을 가져오는 데 사용되는 시작 및 끝 인덱스를 전달합니다. 즉, 이 경우 새 배열에 대한 선택은 인덱스 1에서 인덱스 4로 이동하며 포함하지 않습니다. 배열 인덱싱은 0부터 시작하므로 새 배열에는 두 번째, 세 번째 및 네 번째 요소가 포함됩니다.

푸시()

push() 메서드는 배열 끝에 요소를 추가합니다.

var 과일 = ; fruit.push("사과"); fruit.push("배"); fruit.push("자두"); fruit.push("체리","살구
"); document.write(fruit); // 사과, 배, 자두, 체리, 살구

팝()

pop() 메서드는 배열에서 마지막 요소를 제거합니다.

Var fruit = ["사과", "배", "자두"]; var lastFruit = fruit.pop(); // 배열에서 마지막 요소 검색 document.write(lastFruit + "
"); document.write("배열 과일에서 " + fruit.length + " 요소:
"); for(var i=0; i ");

브라우저 출력:

자두 과일 배열에는 사과 배라는 2가지 요소가 있습니다.

옮기다()

shift() 메서드는 배열에서 첫 번째 요소를 검색하고 제거합니다.

Var fruit = ["사과", "배", "자두"]; var firstFruit = fruit.shift(); document.write(firstFruit + "
"); document.write("배열 과일에서 " + fruit.length + " 요소:
"); for(var i=0; i ");

브라우저 출력:

사과 과일 배열에는 배 자두의 2가지 요소가 있습니다.

언시프트()

unshift() 메서드는 배열의 시작 부분에 새 요소를 추가합니다.

Var fruit = ["사과", "배", "자두"]; fruit.unshift("살구"); document.write(과일);

브라우저 출력:

살구, 사과, 배, 자두

인덱스로 요소를 제거합니다. 접착()

splice() 메서드는 특정 인덱스에서 요소를 제거합니다. 예를 들어 세 번째 색인에서 요소를 제거하면 다음과 같습니다.

Var users = ["톰", "샘", "빌", "앨리스", "케이트"]; var 삭제됨 = users.splice(3); 콘솔로그(삭제); // [ "앨리스", "케이트" ] console.log(users); // [ "톰", "샘", "빌" ]

슬라이스 메서드는 제거된 요소를 반환합니다.

이 경우 삭제는 어레이의 시작 부분에서 이루어집니다. 음수 인덱스를 전달하면 배열의 끝에서 제거가 수행됩니다. 예를 들어 마지막 요소를 제거해 보겠습니다.

Var users = ["톰", "샘", "빌", "앨리스", "케이트"]; var 삭제됨 = users.splice(-1); 콘솔로그(삭제); // [ "케이트" ] console.log(사용자); // [ "톰", "샘", "빌", "앨리스" ]

메서드의 추가 버전을 사용하면 삭제할 끝 인덱스를 지정할 수 있습니다. 예를 들어 첫 번째에서 세 번째 인덱스까지 제거해 보겠습니다.

Var users = ["톰", "샘", "빌", "앨리스", "케이트"]; var 삭제됨 = users.splice(1,3); 콘솔로그(삭제); // [ "샘", "빌", "앨리스" ] console.log(users); // [ "톰", "케이트" ]

splice 메서드의 또 다른 버전을 사용하면 제거된 요소 대신 새 요소를 삽입할 수 있습니다.

Var users = ["톰", "샘", "빌", "앨리스", "케이트"]; var deleted = users.splice(1,3, "Ann", "Bob"); 콘솔로그(삭제); // [ "샘", "빌", "앨리스" ] console.log(users); // [ "톰", "앤", "밥", "케이트" ]

이 경우 1번째부터 3번째 인덱스까지 3개의 요소를 제거하고 대신 2개의 요소를 삽입합니다.

연결()

concat() 메서드는 배열을 연결하는 데 사용됩니다.

Var fruit = ["사과", "배", "자두"]; var vegetables = ["토마토", "오이", "감자"]; var products = fruit.concat(야채); for(var i=0; i< products.length; i++) document.write(products[i] + "
");

이 경우 동일한 유형의 배열만 결합할 필요는 없습니다. 다른 유형을 가질 수도 있습니다.

Var fruit = ["사과", "배", "자두"]; var 가격 = ; var 제품 = fruit.concat(가격);

가입하다()

join() 메서드는 모든 배열 요소를 하나의 문자열로 연결합니다.

Var fruit = ["사과", "배", "자두", "살구", "복숭아"]; var fruitString = fruit.join(", "); document.write(fruitString);

join() 메서드는 배열 요소 사이의 구분 기호로 전달됩니다. 이 경우 구분 기호로 쉼표와 공백(", ")을 사용합니다.

종류()

sort() 메서드는 배열을 오름차순으로 정렬합니다.

Var fruit = ["사과", "배", "자두", "살구", "복숭아"]; 과일정렬(); for(var i=0; i< fruit.length; i++) document.write(fruit[i] + "
");

브라우저에서 출력:

살구 배 복숭아 자두 사과

뒤집다()

reverse() 메서드는 배열을 거꾸로 뒤집습니다.

Var fruit = ["사과", "배", "자두", "살구", "복숭아"]; fruit.reverse(); for(var i=0; i< fruit.length; i++) document.write(fruit[i] + "
");

브라우저에서 출력:

복숭아 살구 자두 배 사과

sort() 메서드와 함께 배열을 내림차순으로 정렬할 수 있습니다.

Var fruit = ["사과", "배", "자두", "살구", "복숭아"]; fruit.sort().reverse(); for(var i=0; i< fruit.length; i++) document.write(fruit[i] + "
");

브라우저에서 출력:

사과 자두 복숭아 배 살구

요소의 인덱스 찾기

indexOf() 및 lastIndexOf() 메서드는 배열에서 요소의 첫 번째 및 마지막 발생 인덱스를 반환합니다. 예를 들어:

Var fruit = ["사과", "배", "자두", "사과", "배"]; var firstIndex = fruit.indexOf("사과"); var lastIndex = fruit.lastIndexOf("사과"); var otherIndex = fruit.indexOf("체리"); document.write(firstIndex); // 0 문서.쓰기(lastIndex); // 3 문서.쓰기(다른 인덱스); // -1

배열에서 문자열 "apples"의 첫 번째 항목이 인덱스 0에 있고 마지막 항목이 인덱스 3에 있기 때문에 firstIndex는 0입니다.

요소가 배열에 없으면 indexOf() 및 lastIndexOf() 메서드는 -1을 반환합니다.

모든()

every() 메서드는 모든 요소가 특정 조건과 일치하는지 확인합니다.

변수 번호 = [ 1, -12, 8, -4, 25, 42 ]; 함수 조건(값, 인덱스, 배열) (var result = false; if (value > 0) ( result = true; ) return result; ); var 전달됨 = numbers.every(조건); document.write(통과); // 거짓

every() 메서드에는 조건을 매개변수로 나타내는 함수가 전달됩니다. 이 함수는 세 가지 매개변수를 사용합니다.

함수 조건(값, 인덱스, 배열) ( )

value 매개변수는 반복되는 현재 배열 요소를 나타내고, index 매개변수는 해당 요소의 인덱스를 나타내며, array 매개변수는 배열에 대한 참조를 전달합니다.

이 함수에서 요소의 전달된 값을 일부 조건에 대해 확인할 수 있습니다. 예를 들어 이 예에서는 배열의 각 요소가 0보다 큰지 확인합니다. 더 크면 true 값을 반환합니다. 즉, 요소가 조건과 일치합니다. 작으면 false를 반환합니다. 요소가 조건과 일치하지 않습니다.

그 결과, numbers.every(condition) 메서드가 호출되면 숫자 배열의 모든 요소를 ​​반복하여 condition 함수에 차례로 전달합니다. 이 함수가 모든 요소에 대해 true를 반환하면 every()는 true를 반환합니다. 하나 이상의 요소가 조건과 일치하지 않으면 every() 메서드는 false 를 반환합니다.

일부()

some() 메서드는 every() 메서드와 유사하지만 적어도 하나의 요소가 조건과 일치하는지 확인합니다. 그리고 이 경우 some() 메서드는 true 를 반환합니다. 배열에 조건과 일치하는 요소가 없으면 false가 반환됩니다.

변수 번호 = [ 1, -12, 8, -4, 25, 42 ]; 함수 조건(값, 인덱스, 배열)( var result = false; if (value === 8) ( result = true; ) return result; ); var 전달됨 = numbers.some(조건); // 진실

필터()

some() 및 every() 와 같은 filter() 메서드는 조건 함수를 사용합니다. 그러나 동시에 다음 조건을 충족하는 요소의 배열을 반환합니다.

변수 번호 = [ 1, -12, 8, -4, 25, 42 ]; 함수 조건(값, 인덱스, 배열) (var result = false; if (value > 0) ( result = true; ) return result; ); var FilteredNumbers = 숫자.필터(조건); for(var i=0; i< filteredNumbers.length; i++) document.write(filteredNumbers[i] + "
");

브라우저에서 출력:

1 8 25 42

forEach() 및 맵()

forEach() 및 map() 메서드는 요소를 반복하고 요소에 대해 특정 작업을 수행합니다. 예를 들어 배열에 있는 숫자의 제곱을 계산하려면 다음 코드를 사용할 수 있습니다.

변수 번호 = [ 1, 2, 3, 4, 5, 6]; for(var i = 0; i "); }

그러나 forEach() 메서드를 사용하면 이 구조를 단순화할 수 있습니다.

변수 번호 = [ 1, 2, 3, 4, 5, 6]; function square(value, index, array) ( var result = value * value; document.write("숫자 " + value + "의 제곱은 " + result + "입니다.
"); ); numbers.forEach(square);

forEach() 메서드는 요소를 반복할 때 반복되는 현재 요소가 전달되고 작업이 수행되는 동일한 함수를 매개 변수로 사용합니다.

map() 메서드는 forEach 메서드와 유사하며 배열의 반복된 요소에 대한 작업을 수행하는 함수를 매개 변수로 사용하지만 map() 메서드는 배열 요소에 대한 작업 결과와 함께 새 배열을 반환합니다. .

예를 들어 map 메서드를 적용하여 배열에 있는 숫자의 제곱을 계산해 보겠습니다.

변수 번호 = [ 1, 2, 3, 4, 5, 6]; function square(value, index, array) ( return result = value * value; ); var squareArray = numbers.map(square); document.write(squareArray);

map() 메서드에 전달된 함수는 현재 반복되는 요소를 가져오고 작업을 수행하고 일부 값을 반환합니다. 이 값은 결과 squareArray로 전달됩니다.

jQuery 라이브러리의 함수와 메서드를 각각 사용하는 예제를 살펴보는 글입니다.

jQuery 라이브러리에는 each라는 2개의 서로 다른 엔터티가 있습니다.

첫 번째(jQuery.each)는 배열 또는 객체의 요소를 반복하는 데 사용할 수 있는 일반 jQuery 함수입니다.

두 번째( each )는 요소 집합에 적용되어 요소를 반복하는 메서드입니다.

each(jQuery.each) 루프. 사용 예

각 함수의 구문은 다음과 같습니다.

// 배열 또는 객체 - 요소 또는 속성이 반복되는 배열 또는 객체 // 콜백 - 각 배열 요소 또는 객체 속성에 대해 실행될 함수 $.each(array or object,callback);

예제를 사용하여 각 기능으로 작업을 분석합니다.

예 #1. 그 안에서 배열(배열)의 모든 요소를 ​​반복해 봅시다.

// 3개 문자열의 배열 var arr = ["자동차","트럭","버스"]; // 배열을 통해 반복 arr $.each(arr,function(index,value)( // 배열의 각 요소에 대해 수행될 작업 // 인덱스는 배열 요소(숫자)의 현재 인덱스 // 값 현재 배열 요소의 값 //배열 인덱스와 값을 콘솔에 출력 console.log("Index: " + index + "; Value: " + value); )); /* 결과(콘솔에서): 인덱스: 0; 값: 자동차 색인: 1; 값: 트럭 지수: 2; 값: 버스 */

위의 코드에서 각 함수는 배열을 반복하는 데 사용됩니다. 이 기능은 필수 매개변수 2개. 첫 번째 매개변수는 요소(속성)가 반복될 엔터티(배열 또는 개체)입니다. 이 경우 배열 arr 입니다. 두 번째 매개변수는 배열의 각 요소(이 경우)에 대해 실행될 콜백 함수입니다. 해당 변수를 통해 내부에서 사용할 수 있는 2개의 매개변수가 있습니다. 첫 번째 매개변수는 요소의 서수입니다(카운팅은 0부터 시작). 두 번째 매개변수는 현재 배열 요소의 값입니다.

예 #2. 이 예에서는 개체의 모든 속성을 열거합니다.


// 5개의 속성이 있는 스마트폰 객체 var smartphone = ( "name": "LG G5 se", "year": "2016", "screen-size": "5.3", "screen-resolution": "2560 x 1440 " , "os" : "안드로이드 6.0(마시멜로)" ); // 스마트폰 객체를 반복합니다. $.each(smartphone, function(key, value) ( ​​// 객체의 각 속성에 대해 수행될 작업 // key - 배열 속성의 현재 이름 // value - 개체의 현재 속성 값 // 속성 이름과 해당 값을 콘솔에 표시 console.log("Property: " +key + "; Value: " + value); )); /* 결과(콘솔에서): 속성: 이름; 값: LG G5 se 속성: 연도; 값: 2016 속성: 화면 크기; 값: 5.3 속성: 화면 해상도; 값: 2560 x 1440 속성: os; 값: Android 6.0(마시멜로) */

각 함수는 JavaScript 객체를 반복하는 데 사용할 수 있습니다. 사용법의 유일한 차이점은 콜백 함수의 매개 변수 값이 다르다는 것입니다. 첫 번째 매개변수는 개체 속성의 이름을 저장하고 두 번째 매개변수는 이 속성의 값을 저장합니다.

예 #3. 여기에서 우리는 더 복잡한 구조를 반복할 것입니다(nested each 를 사용하는 방법을 고려할 것입니다).

// 2개의 속성으로 구성된 객체. 이 객체의 각 속성은 요소가 객체이기도 한 배열을 값으로 가집니다. var article = ( "Bootstrap": [ ("id":"1", "title":"Intro"), ("id":"2 " , "title":"설치 방법"), ("id":"3", "title":"그리드") ], "JavaScript": [ ("id":"4", "title": "기본"), ("id":"5", "title":"요소 선택") ] ); $.each(기사,기능(키,데이터) ( console.log("섹션: " + 키); $.each(데이터, 함수(색인, 값) ( console.log("기사: id = " + 값 ["ID"] + "; 제목 = "+ 값["제목"]); )); )); /* 결과: 섹션: Bootstrap 기사: id = 1; 제목 = 소개 기사: id = 2; 제목 = 기사 설치 방법: id = 3; 제목 = 그리드 섹션: JavaScript 문서: id = 4; 제목 = 기본 기사: id = 5; 이름 = 요소 선택 */

각각을 인터럽트하는 방법(루프 종료)?

각 루프를 끊는 것은 false 를 반환해야 하는 return 문으로 수행됩니다.

예를 들어 arr 배열에서 숫자 7을 찾은 후 각 루프의 실행을 중단해 보겠습니다.

// 5개의 숫자로 구성된 배열 var arr = ; // 찾을 숫자 var find = 7; // 배열을 통해 반복 arr $.each(arr, function (index, value) ( ​​// 필요한 숫자가 발견되면 then.. if (value === find) ( // 콘솔에 출력 console.log("Hurrah! Number " + find + " found! This number has index: " + index); // 루프를 중단합니다. return false; ) else ( // 그렇지 않으면 현재 숫자를 콘솔에 출력합니다. console.log( "현재 번호: " + 값); ) )); /* 결과(콘솔에서): 현재 숫자: 5 현재 숫자: 4 만세! 7번째 발견! 이 숫자에는 인덱스가 있습니다: 2 */

다음 반복(각각 계속)으로 이동하는 방법은 무엇입니까?

각각에서 현재 반복의 실행을 중단하고 다음 반복으로 이동하는 것은 false 이외의 값을 가져야 하는 return 문을 사용하여 수행됩니다.

// 숫자로 구성된 배열 var arr = ; // 짝수를 제외한 arr 배열의 모든 요소를 ​​포함해야 하는 배열 var newarr = ; // 배열을 통해 반복 arr $.each(arr, function (index, value) ( ​​// 요소가 짝수이면 건너뜁니다. if (value % 2 === 0) ( // 현재 반복을 중지합니다. 다음으로 이동 return; ) // newarr 배열에 값 추가 newarr.push(value); )); console.log("소스 배열(arr): " + arr.join()); console.log("결과 배열(newarr): " + newarr.join()); /* 결과(콘솔에서): 소스 배열(arr): 3,5,4,9,17,19,30,35,40 결과 배열(newarr): 3,5,9,17,19,35 */

현재 요소(.each)를 반복합니다.

각 방법의 구문(선택한 요소에만 적용됨):


.각(함수); // function - 현재 객체의 각 요소에 대해 실행될 함수

다음 예제에서 .each 메서드가 어떻게 작동하는지 살펴보겠습니다(div 요소에 대해 반복해 보겠습니다).


위의 예에서 each 메서드는 현재 집합($("div") 선택기로 선택한 요소)을 사용합니다. 각 메서드 핸들러는 항상 현재 집합의 각 요소(이 경우 각 div 요소)에 대해 실행되는 함수입니다. 이 기능에는 2개의 선택적 매개변수가 있습니다. 그 중 하나(인덱스)는 현재 반복의 일련 번호이고 두 번째(요소)는 현재 요소에 대한 DOM 참조입니다. 또한 this 키워드는 두 번째 매개 변수와 마찬가지로 현재 요소에 대한 DOM 참조를 포함하는 함수 내에서 사용할 수 있습니다.

예를 들어 페이지의 모든 요소 a에 대한 href 속성 값을 콘솔에 출력해 보겠습니다.

$("a").each(function() ( console.log($(this).attr("href")); ));

$("a").each(function() ( var link = $(this).attr("href"); if ((link.indexOf("http://") == 0) || (링크 .indexOf("https://") == 0)) ( console.log("href 링크 = " + 링크); ) )); // 페이지에 다음 링크가 포함된 경우: // Yandex // JavaScript는 어떻게 작동합니까? // Bootstrap // 그러면 콘솔에 다음 결과가 표시됩니다. // https://www.yandex.ru/ // http://getbootstrap.com/

예를 들어 클래스 이름이 있는 각 DOM 요소를 반복하는 방법을 살펴보겠습니다(동일한 클래스의 모든 요소를 ​​반복해 봅시다).

라즈베리 파이
단일 보드 컴퓨팅
인텔 갈릴레오 Gen2
19$
파인 A64 플러스

예를 들어 페이지의 모든 요소를 ​​반복하는 방법을 살펴보겠습니다.

예를 들어 페이지의 모든 입력 요소 값을 인쇄해 보겠습니다.

$("input").each(function() ( console.log($(this).val()); ));

예를 들어, id="myList"(각 하위)로 ul에 있는 모든 하위 요소를 반복해 보겠습니다.

  • HTML
  • 자바스크립트

jQuery 각 메서드에서 마지막 인덱스(요소)를 결정하는 방법을 살펴보자.

// 요소 선택 var myList = $("ul li"); // 선택 항목의 요소 수 결정 var total = myList.length; // 선택한 요소를 반복합니다. myList.each(function(index) ( if (index === total - 1) ( // 이것은 선택 항목의 마지막 요소입니다. ) ));

  • I. 실제 배열 반복
    1. forEach 메소드 및 관련 메소드
    2. for 루프
    3. for...in 루프의 적절한 사용
    4. for...of 루프(반복자의 암시적 사용)
    5. 반복자의 명시적 사용
  • II. 배열과 같은 객체 반복
    1. 실제 배열 반복 방법 사용
    2. 실제 배열로 변환
    3. 런타임 개체에 대한 참고 사항

I. 실제 배열 반복

현재 실제 배열의 요소를 반복하는 세 가지 방법이 있습니다.

  1. 메서드 Array.prototype.forEach ;
  2. 클래식 for 루프;
  3. "잘 구성된" for...in 루프.

또한 곧 새로운 ECMAScript 6(ES 6) 표준이 등장함에 따라 두 가지 방법이 더 추가될 것으로 예상됩니다.

  1. for...of 루프(반복자의 암시적 사용);
  2. 반복자의 명시적 사용.

1. forEach 메소드 및 관련 메소드

프로젝트가 ECMAScript 5(ES5) 표준의 기능을 지원하도록 설계된 경우 혁신 중 하나인 forEach 방법을 사용할 수 있습니다.

사용 예:

변수 a = ["a", "b", "c"]; a.forEach(function(entry) ( console.log(entry); ));

일반적으로 forEach를 사용하려면 이 방법을 기본적으로 지원하지 않는 브라우저용 es5-shim 에뮬레이션 라이브러리를 포함해야 합니다. 여기에는 일부 장소에서 여전히 사용되는 IE 8 및 이전 버전이 포함됩니다.

forEach의 장점은 자동으로 콜백 함수에 인수로 전달되기 때문에 현재 배열 요소의 인덱스와 값을 저장하기 위해 지역 변수를 선언할 필요가 없다는 것입니다.

각 요소에 대한 콜백 호출의 가능한 비용이 걱정된다면 걱정하지 말고 이 글을 읽어보세요.

forEach는 배열의 모든 요소를 ​​반복하도록 설계되었지만 그 외에도 ES5는 모든 요소 또는 일부 요소를 반복하고 이들을 사용하여 작업을 수행하는 더 유용한 방법을 제공합니다.

  • every - 배열의 각 요소에 대해 콜백이 true 로 평가되는 값을 반환하는 경우 true 를 반환합니다.
  • some - 배열의 하나 이상의 요소에 대해 콜백이 true 로 평가되는 값을 반환하는 경우 true 를 반환합니다.
  • 필터 - 콜백이 true 를 반환하는 원래 배열의 요소를 포함하는 새 배열을 만듭니다.
  • 지도 - 콜백에서 반환된 값으로 구성된 새 배열을 만듭니다.
  • reduce - 첫 번째부터 시작하여 배열의 각 요소에 콜백을 적용하여 배열을 단일 값으로 줄입니다(배열 요소 및 기타 요약 함수의 합계를 계산하는 데 유용할 수 있음).
  • reduceRight - reduce와 유사하게 작동하지만 요소를 역순으로 반복합니다.

2. for 루프

바위에 좋은 오래된:

변수 a = ["a", "b", "c"]; 변수 인덱스; for (인덱스 = 0; 인덱스< a.length; ++index) { console.log(a); }

배열의 길이가 루프 전체에서 변경되지 않고 루프 자체가 성능에 중요한 코드 조각(가능성이 낮음)에 속하는 경우 배열의 길이를 저장하는 "더 최적화된" 버전의 for를 사용할 수 있습니다. 정렬:

변수 a = ["a", "b", "c"]; var 인덱스, 렌; for (인덱스 = 0, len = a.length; 인덱스< len; ++index) { console.log(a); }

이론적으로 이 코드는 이전 코드보다 약간 더 빠르게 실행되어야 합니다.

요소에 대한 반복 순서가 중요하지 않은 경우 최적화 측면에서 더 나아가 반복 순서를 역순으로 변경하여 배열 길이를 저장하는 변수를 제거할 수 있습니다.

변수 a = ["a", "b", "c"]; 변수 인덱스; for (index = a.length - 1; index >= 0; --index) ( console.log(a); )

그러나 최신 JavaScript 엔진에서 이러한 최적화 게임은 일반적으로 아무 의미가 없습니다.

3. for...in 루프의 적절한 사용

for...in 루프를 사용하도록 권장되는 경우 배열을 반복하는 것이 목적이 아님을 기억하십시오. 일반적인 오해와 달리 for...in 루프는 배열 인덱스를 반복하지 않고 개체의 열거 가능한 속성을 반복합니다.

그러나 스파스 배열을 반복하는 것과 같은 일부 경우에는 아래 예와 같이 예방 조치를 취하는 한 for...in이 유용할 수 있습니다.

// a - 희소 배열 var a = ; 가 = "가"; a = "비"; a = "c"; for (var key in a) ( if (a.hasOwnProperty(key) && /^0$|^d*$/.test(key) && key<= 4294967294) { console.log(a); } }

이 예에서는 루프의 각 반복에서 두 가지 검사가 수행됩니다.

  1. 배열에는 key라는 자체 속성이 있습니다(프로토타입에서 상속되지 않음).
  2. 해당 키는 값이 4294967294 미만인 정수의 십진수 표기법을 포함하는 문자열입니다. 마지막 숫자는 어디에서 왔습니까? ES5의 배열 인덱스 정의에서 배열의 요소가 가질 수 있는 가장 높은 인덱스는 (2^32 - 2) = 4294967294 임을 의미합니다.

물론 이러한 검사는 루프를 실행할 때 추가 시간이 걸립니다. 그러나 희소 배열의 경우 이 방법은 for 루프보다 더 효율적입니다. 이 경우 배열에 명시적으로 정의된 요소만 반복되기 때문입니다. 따라서 위의 예에서는 for 루프의 10001에 대해 3번의 반복만 수행됩니다(인덱스 0, 10 및 10000에 대해).

배열을 반복해야 할 때마다 이렇게 번거로운 검사 코드를 작성하지 않으려면 별도의 함수로 작성할 수 있습니다.

기능 arrayHasOwnIndex(배열, 키) ( return array.hasOwnProperty(key) && /^0$|^d*$/.test(key) && 키<= 4294967294; }

그러면 예제의 루프 본문이 크게 줄어듭니다.

For (key in a) ( if (arrayHasOwnIndex(a, key)) ( console.log(a); ) )

위에서 고려한 검사 코드는 보편적이며 모든 경우에 적합합니다. 그러나 그 대신 공식적으로 정확하지는 않지만 더 짧은 버전을 사용할 수 있지만 그럼에도 불구하고 대부분의 경우에 적합합니다.

For (key in a) ( if (a.hasOwnProperty(key) && String(parseInt(key, 10)) === key) ( console.log(a); ) )

4. for...of 루프(반복자의 암시적 사용)

ES6는 아직 드래프트 상태이지만 JavaScript에 이터레이터를 도입해야 합니다.

반복자 일련의 값(유한 또는 무한)을 얻는 표준 방법을 정의하는 개체 구현 프로토콜입니다.
두 가지 속성을 가진 객체를 반환하는 인수가 없는 함수인 next() 메서드를 정의하는 경우 객체에 반복자가 있습니다.

  1. done(부울) - 반복자가 반복 가능한 시퀀스의 끝에 도달한 경우 참입니다. 그렇지 않으면 false 입니다.
  2. 값 - 반복자가 반환하는 값을 정의합니다. done 속성이 true 로 설정된 경우 정의되지 않을 수 있습니다(누락됨).

많은 내장 개체를 포함합니다. 실제 배열에는 기본적으로 반복자가 있습니다. 실제 배열에서 반복자를 사용하는 가장 간단한 방법은 새로운 for...of 구성을 사용하는 것입니다.

for...of 사용의 예:

바르발; var a = ["a", "b", "c"]; for (val of a) ( console.log(val); )

위의 예에서 for...of 루프는 Array 객체의 반복자를 암시적으로 호출하여 배열의 각 값을 가져옵니다.

5. 반복자의 명시적 사용

이터레이터를 명시적으로 사용할 수도 있지만 이 경우 for...of 루프에 비해 코드가 훨씬 더 복잡해집니다. 다음과 같이 보입니다.

변수 a = ["a", "b", "c"]; 변수 항목; while (!(entry = a.next()).done) ( console.log(entry.value); )

II. 배열과 같은 객체 반복

실제 배열 외에도 JavaScript에는 다음이 있습니다. 배열과 같은 객체 . 실제 배열과 공통점은 길이 속성과 배열 요소에 해당하는 숫자 형식의 이름을 가진 속성이 있다는 것입니다. 예를 들면 NodeList 컬렉션의 DOM과 모든 함수/메서드 내에서 사용할 수 있는 인수 의사 배열이 있습니다.

1. 메서드를 사용하여 실제 배열을 반복

전부는 아니더라도 최소한 대부분의 실제 배열을 반복하는 방법을 사용하여 유사 배열 객체를 반복할 수 있습니다.

for 및 for...in 구문은 실제 배열과 똑같은 방식으로 배열과 같은 객체에 적용할 수 있습니다.

forEach 및 기타 Array.prototype 메소드도 유사 배열 객체에 적용됩니다. 이렇게 하려면 Function.call 또는 Function.apply 호출을 사용해야 합니다.

예를 들어 Node 객체의 childNodes 속성에 forEach를 적용하려면 다음과 같이 하면 됩니다.

Array.prototype.forEach.call(node.childNodes, function(child) ( // 자식 개체로 작업 수행));

이 기법을 편리하게 재사용할 수 있도록 별도의 변수에서 Array.prototype.forEach 메서드에 대한 참조를 선언하고 약식으로 사용할 수 있습니다.

// (아래의 모든 코드가 동일한 범위에 있다고 가정) var forEach = Array.prototype.forEach; // ... forEach.call(node.childNodes, function(child) ( // 자식 객체로 무언가를 함));

배열과 같은 객체에 반복자가 있는 경우 실제 배열과 동일한 방식으로 객체를 반복하기 위해 명시적 또는 암시적으로 사용할 수 있습니다.

2. 실제 배열로 변환

또한 배열과 같은 객체를 반복하는 또 다른 매우 간단한 방법이 있습니다. 실제 배열로 변환하고 위에서 설명한 방법 중 하나를 사용하여 실제 배열을 반복합니다. 변환을 위해 배열과 유사한 객체에 적용할 수 있는 일반 메서드 Array.prototype.slice 를 사용할 수 있습니다. 이는 아래 예와 같이 매우 간단하게 수행됩니다.

Var trueArray = Array.prototype.slice.call(arrayLikeObject, 0);

예를 들어 NodeList 컬렉션을 실제 배열로 변환하려면 다음과 같은 코드가 필요합니다.

Vardivs = Array.prototype.slice.call(document.querySelectorAll("div"), 0);

3. 런타임 개체에 대한 참고 사항

Array.prototype 메소드를 런타임 객체(예: DOM 컬렉션)에 적용하는 경우 이러한 메소드가 모든 런타임(브라우저 포함)에서 올바르게 작동하지 않을 수 있음을 알아야 합니다. 특정 런타임에서 특정 개체의 동작, 더 정확하게는 해당 개체에서 HasProperty 추상 작업이 구현되는 방식에 따라 달라집니다. 문제는 ES5 표준 자체가 이 작업과 관련하여 오작동하는 개체의 가능성을 허용한다는 것입니다(§8.6.2 참조).

따라서 애플리케이션을 사용하려는 각 런타임(브라우저)에서 Array.prototype 메소드의 작동을 테스트하는 것이 중요합니다.

  • I. 실제 배열 반복
    1. forEach 메소드 및 관련 메소드
    2. for 루프
    3. for...in 루프의 적절한 사용
    4. for...of 루프(반복자의 암시적 사용)
    5. 반복자의 명시적 사용
    1. 실제 배열 반복 방법 사용
    2. 실제 배열로 변환
    3. 런타임 개체에 대한 참고 사항

I. 실제 배열 반복

현재 실제 배열의 요소를 반복하는 세 가지 방법이 있습니다.
  1. 메서드 Array.prototype.forEach ;
  2. 클래식 for 루프;
  3. "잘 구성된" for...in 루프.
또한 곧 새로운 ECMAScript 6(ES 6) 표준이 등장함에 따라 두 가지 방법이 더 추가될 것으로 예상됩니다.
  1. for...of 루프(반복자의 암시적 사용);
  2. 반복자의 명시적 사용.

1. forEach 메소드 및 관련 메소드

프로젝트가 ECMAScript 5(ES5) 표준의 기능을 지원하도록 설계된 경우 혁신 중 하나인 forEach 방법을 사용할 수 있습니다.

사용 예:
var a = ["a", "b", "c"]; a.forEach(function(entry) ( console.log(entry); ));
일반적으로 forEach를 사용하려면 이 방법을 기본적으로 지원하지 않는 브라우저용 es5-shim 에뮬레이션 라이브러리를 포함해야 합니다. 여기에는 일부 장소에서 여전히 사용되는 IE 8 및 이전 버전이 포함됩니다.

forEach의 장점은 자동으로 콜백 함수에 인수로 전달되기 때문에 현재 배열 요소의 인덱스와 값을 저장하기 위해 지역 변수를 선언할 필요가 없다는 것입니다.

각 요소에 대한 콜백 호출의 가능한 비용이 걱정된다면 걱정하지 말고 이 글을 읽어보세요.

ForEach는 배열의 모든 요소를 ​​반복하도록 설계되었지만 그 외에도 ES5는 전체 또는 일부 요소를 반복하고 이들을 사용하여 작업을 수행하는 몇 가지 더 유용한 메서드를 제공합니다.

  • every - 배열의 각 요소에 대해 콜백이 true 로 평가되는 값을 반환하는 경우 true 를 반환합니다.
  • some - 배열의 하나 이상의 요소에 대해 콜백이 true 로 평가되는 값을 반환하는 경우 true 를 반환합니다.
  • 필터 - 콜백이 true 를 반환하는 원래 배열의 요소를 포함하는 새 배열을 만듭니다.
  • 지도 - 콜백에서 반환된 값으로 구성된 새 배열을 만듭니다.
  • reduce - 첫 번째부터 시작하여 배열의 각 요소에 콜백을 적용하여 배열을 단일 값으로 줄입니다(배열 요소 및 기타 요약 함수의 합계를 계산하는 데 유용할 수 있음).
  • reduceRight - reduce와 유사하게 작동하지만 요소를 역순으로 반복합니다.

2. for 루프

바위에 좋은 오래된:

변수 a = ["a", "b", "c"]; 변수 인덱스; for (인덱스 = 0; 인덱스< a.length; ++index) { console.log(a); }
배열의 길이가 루프 전체에서 변경되지 않고 루프 자체가 성능에 중요한 코드 조각(가능성이 낮음)에 속하는 경우 배열의 길이를 저장하는 "더 최적화된" 버전의 for를 사용할 수 있습니다. 정렬:

변수 a = ["a", "b", "c"]; var 인덱스, 렌; for (인덱스 = 0, len = a.length; 인덱스< len; ++index) { console.log(a); }
이론적으로 이 코드는 이전 코드보다 약간 더 빠르게 실행되어야 합니다.

요소에 대한 반복 순서가 중요하지 않은 경우 최적화 측면에서 더 나아가 반복 순서를 역순으로 변경하여 배열 길이를 저장하는 변수를 제거할 수 있습니다.

변수 a = ["a", "b", "c"]; 변수 인덱스; for (index = a.length - 1; index >= 0; --index) ( console.log(a); )
그러나 최신 JavaScript 엔진에서 이러한 최적화 게임은 일반적으로 아무 의미가 없습니다.

3. for...in 루프의 적절한 사용

for...in 루프를 사용하도록 권장되는 경우 배열을 반복하는 것이 목적이 아님을 기억하십시오. 일반적인 오해와 달리 for...in 루프는 배열 인덱스를 반복하지 않고 개체의 열거 가능한 속성을 반복합니다.

그러나 스파스 배열을 반복하는 것과 같은 일부 경우에는 아래 예와 같이 예방 조치를 취하는 한 for...in이 유용할 수 있습니다.

// a - 희소 배열 var a = ; 가 = "가"; a = "비"; a = "c"; for (var key in a) ( if (a.hasOwnProperty(key) && /^0$|^\d*$/.test(key) && key<= 4294967294) { console.log(a); } }
이 예에서는 루프의 각 반복에서 두 가지 검사가 수행됩니다.

  1. 배열에는 key라는 자체 속성이 있습니다(프로토타입에서 상속되지 않음).
  2. 해당 키는 값이 4294967294 미만인 정수의 십진수 표기법을 포함하는 문자열입니다. 마지막 숫자는 어디에서 왔습니까? ES5의 배열 인덱스 정의에서 배열의 요소가 가질 수 있는 가장 높은 인덱스는 (2^32 - 2) = 4294967294 임을 의미합니다.
물론 이러한 검사는 루프를 실행할 때 추가 시간이 걸립니다. 그러나 희소 배열의 경우 이 방법은 for 루프보다 더 효율적입니다. 이 경우 배열에 명시적으로 정의된 요소만 반복되기 때문입니다. 따라서 위의 예에서는 for 루프의 10001에 대해 3번의 반복만 수행됩니다(인덱스 0, 10 및 10000에 대해).

배열을 반복해야 할 때마다 이렇게 번거로운 검사 코드를 작성하지 않으려면 별도의 함수로 작성할 수 있습니다.

기능 arrayHasOwnIndex(배열, 키) ( return array.hasOwnProperty(key) && /^0$|^\d*$/.test(key) && 키<= 4294967294; }
그러면 예제의 루프 본문이 크게 줄어듭니다.

For (key in a) ( if (arrayHasOwnIndex(a, key)) ( console.log(a); ) )
위에서 고려한 검사 코드는 보편적이며 모든 경우에 적합합니다. 그러나 그 대신 공식적으로 정확하지는 않지만 더 짧은 버전을 사용할 수 있지만 그럼에도 불구하고 대부분의 경우에 적합합니다.

For (key in a) ( if (a.hasOwnProperty(key) && String(parseInt(key, 10)) === key) ( console.log(a); ) )

4. for...of 루프(반복자의 암시적 사용)

ES6는 아직 드래프트 상태이지만 JavaScript에 이터레이터를 도입해야 합니다.

반복자 일련의 값(유한 또는 무한)을 얻는 표준 방법을 정의하는 개체 구현 프로토콜입니다.
반복자는 next() 메서드를 정의하는 객체입니다. next() 메서드는 두 가지 속성이 있는 객체를 반환하는 인수가 없는 함수입니다.

  1. done(부울) - 반복자가 반복 가능한 시퀀스의 끝에 도달한 경우 참입니다. 그렇지 않으면 false 입니다.
  2. 값 - 반복자가 반환하는 값을 정의합니다. done 속성이 true 로 설정된 경우 정의되지 않을 수 있습니다(누락됨).
많은 내장 개체를 포함합니다. 실제 배열에는 기본적으로 반복자가 있습니다. 실제 배열에서 반복자를 사용하는 가장 간단한 방법은 새로운 for...of 구성을 사용하는 것입니다.

for...of 사용의 예:

바르발; var a = ["a", "b", "c"]; for (val of a) ( console.log(val); )
위의 예에서 for...of 루프는 Array 객체의 반복자를 암시적으로 호출하여 배열의 각 값을 가져옵니다.

5. 반복자의 명시적 사용

이터레이터를 명시적으로 사용할 수도 있지만 이 경우 for...of 루프에 비해 코드가 훨씬 더 복잡해집니다. 다음과 같이 보입니다.

변수 a = ["a", "b", "c"]; var it = a.entries(); 변수 항목; while (!(entry = it.next()).done) ( console.log(entry.value); )
이 예제에서 Array.prototype.entries 메서드는 배열 값을 표시하는 데 사용되는 반복자를 반환합니다. 각 반복에서 entry.value는 [key, value] 형식의 배열을 포함합니다.

II. 배열과 같은 객체 반복

실제 배열 외에도 JavaScript에는 다음이 있습니다. 배열과 같은 객체 . 실제 배열과 공통점은 길이 속성과 배열 요소에 해당하는 숫자 형식의 이름을 가진 속성이 있다는 것입니다. 예를 들면 NodeList 컬렉션의 DOM과 모든 함수/메서드 내에서 사용할 수 있는 인수 의사 배열이 있습니다.

1. 메서드를 사용하여 실제 배열을 반복

전부는 아니더라도 최소한 대부분의 실제 배열을 반복하는 방법을 사용하여 유사 배열 객체를 반복할 수 있습니다.

for 및 for...in 구문은 실제 배열과 똑같은 방식으로 배열과 같은 객체에 적용할 수 있습니다.

ForEach 및 기타 Array.prototype 메소드도 유사 배열 객체에 적용됩니다. 이렇게 하려면 Function.call 또는 Function.apply 호출을 사용해야 합니다.

예를 들어 Node 객체의 childNodes 속성에 forEach를 적용하려면 다음과 같이 하면 됩니다.

Array.prototype.forEach.call(node.childNodes, function(child) ( // 자식 개체로 작업 수행));
이 기법을 편리하게 재사용할 수 있도록 별도의 변수에서 Array.prototype.forEach 메서드에 대한 참조를 선언하고 약식으로 사용할 수 있습니다.

// (아래의 모든 코드가 동일한 범위에 있다고 가정) var forEach = Array.prototype.forEach; // ... forEach.call(node.childNodes, function(child) ( // 자식 객체로 무언가를 함));
배열과 같은 객체에 반복자가 있는 경우 실제 배열과 동일한 방식으로 객체를 반복하기 위해 명시적 또는 암시적으로 사용할 수 있습니다.

2. 실제 배열로 변환

또한 배열과 같은 객체를 반복하는 또 다른 매우 간단한 방법이 있습니다. 실제 배열로 변환하고 위에서 설명한 방법 중 하나를 사용하여 실제 배열을 반복합니다. 변환을 위해 배열과 유사한 객체에 적용할 수 있는 일반 메서드 Array.prototype.slice 를 사용할 수 있습니다. 이는 아래 예와 같이 매우 간단하게 수행됩니다.

Var trueArray = Array.prototype.slice.call(arrayLikeObject, 0);
예를 들어 NodeList 컬렉션을 실제 배열로 변환하려면 다음과 같은 코드가 필요합니다.

Vardivs = Array.prototype.slice.call(document.querySelectorAll("div"), 0);
업데이트: rock 및 torbasow의 주석에서 언급한 것처럼 ES6에서는 Array.prototype.slice 대신 더 설명적인 Array.from 메서드를 사용할 수 있습니다.

3. 런타임 개체에 대한 참고 사항

Array.prototype 메소드를 런타임 객체(예: DOM 컬렉션)에 적용하는 경우 이러한 메소드가 모든 런타임(브라우저 포함)에서 올바르게 작동하지 않을 수 있음을 알아야 합니다. 특정 런타임에서 특정 개체의 동작, 더 정확하게는 해당 개체에서 HasProperty 추상 작업이 구현되는 방식에 따라 달라집니다. 문제는 ES5 표준 자체가 이 작업과 관련하여 오작동하는 개체의 가능성을 허용한다는 것입니다(§8.6.2 참조).

따라서 애플리케이션을 사용하려는 각 런타임(브라우저)에서 Array.prototype 메소드의 작동을 테스트하는 것이 중요합니다.

정의 및 적용

자바스크립트 방식 각각()오름차순 인덱스 순서로 배열의 각 요소에 대해 전달된 함수를 한 번 실행할 수 있습니다.

콜백 함수가 메서드 매개 변수로 전달된다는 사실에 주목합니다. 각각()삭제되거나 누락된 배열 요소에 대해서는 호출되지 않습니다.

메소드에 의해 처리되는 요소의 범위 각각()전에 설치 첫 번째콜백 함수를 호출합니다. 배열이 호출된 후 요소가 배열에 추가된 경우 해당 요소에서 함수가 호출되지 않습니다.

실행 시 기존 배열 요소의 값이 변경되면 함수에 전달된 값은 메서드가 실행된 시점의 값이 됩니다. 각각()그들을 방문합니다. 요소를 방문하기 전에 제거하면 해당 요소는 방문되지 않습니다. 배열을 반복하는 동안 이미 방문한 요소가 제거되면 이후 요소는 건너뜁니다.

브라우저 지원

방법
오페라

익스플로러

가장자리
각각() 9.0

자바스크립트 구문:

// 콜백 함수만 있음 정렬.forEach(기능( 현재 값, 색인, )); // this 키워드로 참조할 수 있는 객체 사용 정렬.forEach(기능( 현재 값, 색인, ), 이값);

자바스크립트 버전

ECMAScript 5.1(JavaScript 1.6에서 구현됨)

매개변수 값

모수설명
기능 실행할 콜백 함수 하나배열의 각 요소에 대한 시간입니다. 이 함수는 다음 매개변수를 사용합니다.
  • 현재 값 - 현재 요소의 값
  • 색인 - 현재 요소의 배열 인덱스.
  • - 현재 요소가 속한 배열(패스가 발생하는 배열).

함수 객체가 아닌 것이 메소드 매개변수로 전달되면 예외가 발생합니다. 유형 오류. 필수 매개변수.

이값 콜백 함수 내에서 this 키워드가 참조할 수 있는 객체입니다. 매개변수 이값가 사용되지 않으면 undefined가 this의 값으로 사용됩니다(결국 함수 실행 컨텍스트의 일반 규칙에 따라 다름). 선택적 매개변수입니다.

사용 예

다음 예제에서는 다음을 사용하여 배열의 모든 요소의 합계를 얻는 방법을 살펴보겠습니다. 자바스크립트방법 각각():

변수 배열 = ; 바르섬 = 0 ; // 숫자 값을 포함하는 변수 초기화 정렬.각각( // 배열의 모든 요소에 대해 반복함수 sumNumber( 현재 값) { 합집합 += 현재 값; ) ); 콘솔 .log( 합집합); // 합계 변수의 값을 50으로 표시

다음 예에서는 다음을 사용하는 방법을 살펴보겠습니다. 두번째메서드 인수 각각(), 콜백 함수 내에서 this 키워드를 사용하여 참조할 수 있는 객체를 가리킵니다.

변수 번호 = ; // 숫자 값 배열을 포함하는 변수를 초기화합니다. var 제곱 = ; // 빈 배열을 포함하는 변수를 초기화합니다. var myObject = ( // 객체를 포함하는 변수를 초기화합니다.제곱: 함수( 현재 값) { // 값을 받는 객체 메서드반품 현재 값 * 현재 값; // 제곱으로 반환 } } ; 숫자.각각( // 숫자 배열의 모든 요소를 ​​반복합니다.기능( 현재 값) { 제곱.push(이 .square( 현재 값)); // myObject의 square 메서드 반환 값을 제곱 배열에 추가합니다. } , myObject // this 키워드를 사용하여 참조하는 객체); 콘솔 .log( 제곱); // 변수의 값을 제곱한 값을 표시합니다.
질문이 있으신가요?

오타 신고

편집자에게 보낼 텍스트: