js에서 배열방에 사용할 수 있는 다양한 메소드를 알아보자.
splice는 특정 번호의 방, R 부터 N개의 데이터를 지우고 R번호 부터 데이터를 집어 넣을 수 있다.
slice는 N1번 부터 N2번 까지의 데이터를 반환한다.
split은 java에서 사용하던 split과 똑같이 요소를 특정 단어로 나눠준다.
sort는 정렬기능
reverse는 역정렬
delete는 삭제하여 empty로 비워둠
concat, 배열 합치기
valueOf 배열의 값 반환
join, 배열의 값을 반환할 때 구분자를 추가하여 반환
정렬의 경우 5~10개 까지는 안정적으로 작동한다.
splice의 경우 무슨말인지 모를 수 있는데 예제를 실행하여 결과를 확인해보자
<html>
<head>
<meta charset="UTF-8">
<title>배열 함수</title>
<link rel="icon" href="img/favicon.ico">
<style>
/*css 주석*/
</style>
<!--스크립트를 여기에 넣어도 되지만 페이지가 느려지는 등 원인으로 바디 아래에 넣음-->
</head>
<body>
<button onclick="spliceDel()">spliceDel</button>
<button onclick="spliceAdd()">spliceAdd</button>
<button onclick="sliceEx()">sliceEx</button>
<button onclick="splitEx()">splitEx</button>
<br/><br/><br/>
<button onclick="sortEx()">sortEx</button>
<button onclick="reverseEx()">reverseEx</button>
<button onclick="numberSort()">numberSort</button>
<br/><br/><br/>
<button onclick="delEx()">delEx</button>
<button onclick="concatEx()">concatEx</button>
</body>
<script>
var arr = ["마", "가", "다", "바", "나", "라"]
/////////////////////////////////////////////// 정말 자주 쓰이는
// splice를 이용한 요소 삭제
function spliceDel(){
console.log(arr);
arr.splice(2, 2); // 2번 인덱스 포함 2개 삭제
console.log(arr);
}
// splice를 이용한 요소 추가
function spliceAdd(){
console.log(arr);
// 2번 인덱스부터 지울 갯수 0개, 추가할 값...
arr.splice(2, 0, "C", "D");
// arr.splice(2, 2, "C", "D"); 지울 갯수를 지정하여 교체형식 지우고 추가 형식도 가능
console.log(arr);
}
//범위 자르기(원본데이터는 보존된다.)
function sliceEx(){
numArr = [0,1,2,3,4,5];
console.log(numArr);
//1번인덱스 부터 보여주고, 3번부터 버림
var newArr = numArr.slice(1,3);
console.log(newArr);
console.log(numArr);
}
//특정한 구분자로 자르기
function splitEx(){
var txt = "D:/img/girlgroup/twice.jpg";
var depth = txt.split("/");
console.log(depth);
//twice.jpg 출력 하기
console.log(depth[3]);
console.log(depth[depth.length-1]);
}
/////////////////////////////////////////////// 자주 쓰이는
// 배열 정렬(문자열)
function sortEx(){
arr.sort();
console.log(arr);
}
// 배열 역정렬(문자열)
function reverseEx(){
arr.reverse();
console.log(arr);
}
// 숫자 정렬(커스터마이징)
var num = [3, 2, 4, 1, 5];
function numberSort(){
// a-b의 값이 -1이라면 바꾼다
num.sort(function(a, b){return a-b});
// 역정렬은 return b-a로 주면 된다.
console.log(num);
}
/////////////////////////////////////////////// 잘 안쓰는
// delete, 특정 인덱스를 삭제, 공간을 empty로 비워둠
function delEx(){
delete arr[2];
console.log(arr);
arr[2] = "new";
console.log(arr);
}
// empty로 비워두면 접근 시 오류가 나기 때문에 쓰는걸 권장하지 않음, 주의가 필요
// concat, 두개의 배열을 합쳐서 새로운 배열 생성
function concatEx(){
var arr1 = [1, 2, 3, 4, 5];
var arr2 = ['a', 'b', 'c', 'd', 'e'];
// arr.concat(arr1, arr2);
var newArr = arr1.concat(arr2);
console.log(newArr);
}
// 쓸 일이 있어 보이지만 구지 쓰지 않는 기능
/////////////////////////////////////////////// 진짜 안쓰는
// valueOf
console.log(arr.valueOf()); // = console.log(arr);
// 과거 콘솔이 없던 시절에 쓰던 기능
//join
console.log(arr.join("@")); // 항목 별 구분자 추가
</script>
</html>