
배열 선언방법
3가지 방법 다 똑같이 배열선언하는 방법이지만 왠만하면 첫번째 방법으로 많이 쓴다.
1)첫번째 방법
const cars=["Saab","Kia","Volvo","BMW"];
2) 2번째 방법
var cars = [];
cars[0]="Saab";
cars[1]="Kia";
cars[2]="Volvo";
cars[3]="BMW";
3) 3번째 방법 -거의 안쓰인다.
var cars = new Array("Saab","Kia","Volvo","BMW");
배열 선언후 출력하기
배열 정렬
1) 오름차순
sort() 함수 사용
const fruits = ["Banana","Orange","Apple","Mango"];
fruits.sort(); //한줄 코딩으로 오름차순이 되었다.
let len = fruits.length;
let text = "<ol>";
for (var i = 0; i < len; i++) {
text+="<li>"+fruits[i]+"</li>"
}//for
text+="</ol>";
$("#demo").html(text);
2) 내림차순
ㄱ. 첫번째 방법
- sort() 함수로 정렬한다음에 reverse로 거꾸로 만든다.
reverse();
- 원래 배열의 순서를 거꾸로 만드는 함수이다.
[1,2,3,4] reverse => [4,3,2,1]
const fruits = ["Banana","Orange","Apple","Mango"];
fruits.sort();
fruits.reverse();
let len = fruits.length;
let text = "<ol>";
for (var i = 0; i < len; i++) {
text+="<li>"+fruits[i]+"</li>"
}//for
text+="</ol>";
$("#demo").html(text);
ㄴ.두번째 방법
- 도움말 사이트 참고 해서 if 문으로 조건 주기
fruits.sort(function(a,b){
if(a<b){
return 1;
}
if(a>b){
return -1;
}
});
ㄷ. 세번째 방법
- localCompare() 이용
fruits.sort(function(a,b){
return b.localeCompare(a);
});
ㄹ.네번째 방법(세번째 방법에서 람다식으로만 바꾼거다.)
fruits.sort((a,b)=> b.localeCompare(a) );
sort()
m = [3,5,2,4,1,100,51]
m.sort( );
오름차순 정렬 => 일반적으로 sort주면 문자열 기준으로 정렬된다.
m[0]=1
m[1]=100
m[2]=2
m[3]=3
m[4]=4
m[5]=5
m[6]=51
그래서 sort 안에 람다식으로 정렬기준을 설정해야 숫자로써 오름차순, 내림차순이 가능하다.
m.sort((a,b)=>a-b); //오름차순 정렬
m.sort((a,b)=>b-a); //내림차순 정렬
람다식을 사용해서 오름, 내림차순을 결정해 주는걸 예를 들어 확인해 보자.
라디오 버튼의 value 값들을 1 -1로 설정해 놓았기 때문에 체크된 라디오 박스에 따라 radioValue 값이
1 or -1
로 결정된다.
람다식 안의 a-b 값에 radioValue 값을 곱해줌으로서
a - b or b - a
로 변환되어서 오름 ,내림차순이 결정되는것이다.
배열 예제
숫자를 input박스에 입력하고 입력한 숫자가 배열에 들어가게 코딩해 보자.
1단계) 알고리즘적으로 마지막 요소 추가하기
var numbers=[];
//배열의 요소 추가할 때의 위치(index) - numbrs.length
$("button").click(function(event){
var n = $("#num").val();
if( isNaN(n) || n=="" ){
alert("입력 잘못했습니다.(숫자가 아님)");
$("#num")
.focus()
.select();
return;
}
numbers[numbers.length] = n; //알고리즘 적으로 마지막 요소 추가 방법
var text = "<ol>";
for (var i = 0; i < numbers.length; i++) {
text+="<li>"+numbers[i]+"</li>"
}//for
text+="</ol>"
$("#demo").html(text);
});
2단계) push()함수 사용해서 마지막 요소 추가하기
$("button").click(function(event){
var n = $("#num").val();
if( isNaN(n) || n=="" ){
alert("입력 잘못했습니다.(숫자가 아님)");
$("#num")
.focus()
.select();
return;
}
numbers.push(n);
var text = "<ol>";
for (var i = 0; i < numbers.length; i++) {
text+="<li>"+numbers[i]+"</li>"
}//for
text+="</ol>"
$("#demo").html(text);
});
3단계) 1,2,3,4 와 같이 콤마 연산자로 하더라도 배열에 추가하기
var numbers=[ ];
$("button").click(function(event){
var data = $("#num").val();
var nums = data.split(/\s*,\s*/);
//type of nums array => object
//demo /li
nums.forEach(function(elt,i,array){
numbers.push(elt);
});
text = "<ol>";
numbers.forEach(function(elt,i,array){
text+="<li>"+elt+"</li>";
})
//numbers.forEach((elt,i,array)=>text+="<li>"+elt+"</li>");
text+="</ol>"
$("#demo").html(text);
});
4단계) 배열을 오름차순 내림차순 버튼을 누르면 정렬되게 해보자.
??
배열 관련 함수
isArray( ) / instanceof( )
배열인지 아닌지 확인해 주는 함수
console.log(Array.isArray(m)); //true
console.log(m instanceof Array); //true
join( )
(***중요***)
구분자를 지정해서 그 구분자로 요소를 연결해서 문자열로 반환하는 메서드
push( )
push() 함수 : 새로운 요소를 마지막 부분에 추가해주는 함수.
m.push(100);
pop( )
pop() : 가장 마지막 요소를 가져오고 제거하는 함수
var lastElement = m.pop();
shift( )
shift():첫 요소+ 제거
var firstElement = m.shift();
unshift( )
unshift() : 첫 요소 추가하는 함수
var len = m.unshift("100");
요소값 변경
2번째 요소값(2)을 500변경ㅇ
m[2] = 500;
delete( )
delete m[1];
shift()와 다르게 제거된 부분의 공간이 남아있다.
console.log(m.toString()); //3, ,2,4,1
concat( )
concat() 배열 병합 - 두 배열이 병합된 새로운 배열을 반환하는 메서드
var n = [15,25,35];
var o = [66,67];
var mn = m.concat(n);
3개 배열 합치고 싶을때
var mno = m.concat(m,o);
concat는 배열만 병합하는게 아니라 값+배열 병합도 가능하다.
var newm = m.concat(1000);
splice( )
splice( pos, amount, ... )
pos 새 요소를 추가할 위치
amount 제거할 요소 수
나머지 매개변수 추가할 새 요소
첫번째 용도 : 추가하는 기능
m = [ 3 , 5 , 2 , 4 ,1]
m.splice(1,0,100); // 3,100,5,2,4,1
m.splice(1,0,100,200); // 3,100,200,5,2,4,1
두번째 용도 : 제거하는 기능
m.splice(1,2); //1위치 부터 2개 제거해라 라는 의미이다.
3,5,2,4,1 => 3,4,1
slice( )
slice : 배열의 일부를 새 배열로 잘라내는 기능 단, 원래 배열(m)제거하지 않는다.
m = [ 3 , 5 , 2 , 4 ,1]
var n = m.slice(1,3); //[5,2]
console.log(m.toString()); //3,5,2,4,1
console.log(n.toString()); //5,2
'JavaScript' 카테고리의 다른 글
[js] JavaScript 함수(2) __개발공부 69일차 (0) | 2022.06.02 |
---|---|
[js] JavaScript 함수 __개발공부 68일차 (0) | 2022.06.01 |
[js] JavaScript개요 __개발공부 67일차 (0) | 2022.06.01 |