js
JS - 배열 다루기
배열을 조작할 수 있는 함수는 다음 표를 참고합니다.
  
배열의 처음과 마지막 원소를 제거해 보겠습니다.
첫 번째 방법은 start 부터 count 수 만큼 제거하여 반환하고, 0부터 카운더합니다. 두 번째 방법은 start 부터 count 수 만큼 제거하고 그 자리에 value1, value2 로 채웁니다.
다음은 세 번째 배열부터 3개를 제거하고, 제거한 값을 after 에 저장합니다.
다음은 2, 3 값을 제거하고 그 자리에 7과 8로 채웁니다. 그리고 제거한 값들은 after 에 저장합니다.
| 함 수 | 설 명 | 
|---|---|
| isArray() | 주어진 값이 배열인지 검증. true | false 중 하나 Ex.) Array.isArray(배열); | 
| pop() | 마지막 원소를 제거하고, 제거한 원소를 반환 | 
| push() | 배열의 끝에 새로운 원소를 추가 Ex.) push(배열); | 
| shift() | 배열의 멘 앞의 원소를 제거하고, 제거한 원소를 반환 | 
| unshift() | 배열의 맨 앞에 새로운 원소를 추가 Ex.) unshift(배열); | 
| reverse() | 배열의 순서를 역순으로 정렬 | 
| sort() | 배열의 순서를 오름차순으로 정렬 | 
| concat() | 두 배열을 하나로 합침 단지 합친 배열을 반환만 하며 기존 배열에는 영향을 받지 않음 Ex.) concat(배열); | 
| indexOf() | 찾는 값이 해당 배열의 처음으로 나오는 위치를 인덱스로 반환 Ex.1) indexOf(찾는 문자열); Ex.2) indexOf(찾는 문자열, 시작 인덱스); | 
| lastIndexOf() | 찾는 값이 해당 배열의 마지막으로 나오는 위치를 인덱스로 반환 Ex.1) lastIndexOf(찾는 문자열); Ex.2) lastIndexOf(찾는 문자열, 시작 인덱스); | 
| slice() | 지정한 a 지점과 b 지점 사이의 배열을 추출하여 반환. 음수이면 배열 끝에서 시작 Ex.) slice( a 지점, b 지점 ); | 
| splice() | 배열에서 특정 범위의 값들을 제거하고, 그 자리에 새로운 값들로 채움 | 
| split() | 문자열을 구분자로 나누어 배열로 만듬 Ex.) split(나눌 구분자); | 
| join() | 배열을 하나의 문자열로 만듭니다. Ex.) join(합칠 구분자); | 
isArray()
주어진 값이 배열인지 검증해 보겠습니다.
<script>
alert(Array.isArray([1,2,3])); // true
alert(Array.isArray([])); // true
alert(Array.isArray({})); // false
alert(Array.isArray(1)); // false
</script>shift() 와 pop()
<script>
 var vars = ["name", "value", true, 3.14, [1, 2, 3]];
 // 마지막 원소를 제거하고, 제거한 원소를 반환
 document.write(vars.pop()); // 1,2,3
 // 처음 원소를 제거하고, 제거한 원소를 반환
 document.write(vars.shift()); // name
 // 첫 번째와 마지막 원소가 제거된 상태이므로
 // 첫 번째 원소는 value 가 됩니다.
 document.write( vars[0] + "<br/>"); // value
 document.write( vars[1] + "<br/>"); // true
 document.write( vars[2] + "<br/>"); // 3.14
 document.write( vars[3] + "<br/>"); // undefined
 document.write( vars[4] + "<br/>"); // undefined
</script>unshift() 와 push()
배열의 마지막과 첫 부분에 새로운 원소를 추가해 보겠습니다.<script>
 var vars = ["name", "value", true, 3.14, [1, 2, 3]];
 document.write( vars[0] + "<br/>"); // name
 document.write( vars[1] + "<br/>"); // value
 document.write( vars[2] + "<br/>"); // true
 document.write( vars[3] + "<br/>"); // 3.14
 document.write( vars[4] + "<br/>"); // 1,2,3
 // 배열 첫 부분에 one 원소를 추가 
 vars.unshift("one");
 // 배열 마지막 부분에 hello 원소를 추가
 vars.push("hello");
 document.write( vars[0] + "<br/>"); // one
 document.write( vars[6] + "<br/>"); // hello
</script>reverse(), concat(), split(), join()
<script>
 var vars = ["name", "value", true, 3.14, [1, 2, 3]];
 var vars2 = Array("habony", "php");
 document.write( vars[0] + "<br/>"); // name
 document.write( vars[1] + "<br/>"); // value
 document.write( vars[2] + "<br/>"); // true
 document.write( vars[3] + "<br/>"); // 3.14
 document.write( vars[4] + "<br/>"); // 1,2,3
 // 두 배열을 하나로 합칩니다. 
 var new_arr = vars.concat(vars2);
 document.write( new_arr + "<br/>"); 
 // name,value,true,3.14,1,2,3,habony,php
 document.write( new_arr[6] + "<br/>"); // php
 
 // 문자열을 "-" 로 나눈 각 문자열을 배열로 변환
 var str = "1-2-3-4-5";
 var str_arr = str.split("-");
 document.write( str_arr + "<br/>"); // 1,2,3,4,5
 
 // 역순으로 정렬합니다.
 document.write( str_arr.reverse() + "<br/>"); // 5,4,3,2,1
 // 배열을 하나의 문자열로 합침니다.
 document.write( str_arr.join(" ") ); // 1 2 3 4 5
</script>
splice()
splice() 는 배열에서 특정 범위의 값들을 추출하여, 그 자리에 새로운 값들로 채울 수 있습니다. 문법은 다음과 같습니다.arr.splice( start, count );
arr.splice( start, count, value1, value2, ... );
첫 번째 방법은 start 부터 count 수 만큼 제거하여 반환하고, 0부터 카운더합니다. 두 번째 방법은 start 부터 count 수 만큼 제거하고 그 자리에 value1, value2 로 채웁니다.
다음은 세 번째 배열부터 3개를 제거하고, 제거한 값을 after 에 저장합니다.
<script>
  var before = [ '1', '2', '3', '4', '5', '6' ];
  var after = before.splice( 2, 3 );
  document.write( '<div>before : ' + before + '</div>' );
  document.write( '<div>after : ' + after + '</div>' );
  /*
    결과:
    before : 1,2,6
    after : 3,4,5
  */
</script>다음은 2, 3 값을 제거하고 그 자리에 7과 8로 채웁니다. 그리고 제거한 값들은 after 에 저장합니다.
<script>
  var before = [ '1', '2', '3', '4', '5', '6' ];
  var after = before.splice( 1, 2, '7', '8' );
  document.write( '<div>before : ' + before + '</div>' );
  document.write( '<div>after : ' + after + '</div>' );
  /*
    결과:
    before : 1,7,8,4,5,6
    after : 2,3
  */
</script> 
 
 
0 댓글