javascript Ex6(배열 속성과 메서드)

권원중·2023년 6월 8일
0

구디아카데미

목록 보기
20/23
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script>
	//배열의 속성과 메서드
	let arr = []; // let arr = new Array();
	arr[0] = '루피'; // arr.push('루피') push 메서드를 사용하면 index 숫자를 직접 입력하지 않아도 된다.
	arr[1] = '나미';
	
	console.log(arr.length); // 배열의 길이
	console.log(arr); // console.log()메서드는 단순 출력 메서드가 아니고 매개값을 분석해서 리포트가 같이 출력된다
	
	// 자주사용되는 배열 메서드
	// 1) push() : stack자료구조 삽입 메서드 
	let rt1 = arr.push('조로');
	console.log('push 반환타입 : ',rt1); // 반환값이 length 가 나온다
	console.log(arr);
	
	// 2) pop() : stack 자료구조 추출(뒷부분) 메서드 
	let rt2 = arr.pop()
	console.log('pop 반환타입 : ', rt2);
	console.log(arr);
	
	// 3) unshift() :push와 반대로 앞부분에 삽입 메서드
	let rt3 = arr.unshift('에이스');
	console.log('unshift 반환타입 : ', rt3);
	console.log(arr);
	
	// 4) shift() : queue 자료구조 추출(앞) 메서드
	let rt4 = arr.shift();
	console.log('shift 반환타입 : ', rt4);
	console.log(arr);
	
	// 5 slice
	let arr2 = [3, 6, 1, 2, 7, 10, 9, 8];
	let rt5_1 = arr2.slice(5); // 10, 9, 8
	console.log('slice(x) 반환타입 : ', rt5_1);
	console.log(arr2); // 원본은 유지
	
	let rt5_2 = arr2.slice(5, 7); // 10, 9
	console.log('slice(x) 반환타입 : ', rt5_2);
	console.log(arr2); // 원본은 유지
	
	// 6) concat
	let arr3 = [1, 3];
	let arr4 = [2, 4];
	let rt6 = arr3.concat(arr4);
	console.log(rt6);
	console.log(arr4);
	
	// 7) forEach
	let arr5 = ['루피','조로','나미','상디'];
	// 자바스크립트는 함수도 변수에 저장된다 ->  매개값으로 보낼 수 있다 ->  1급함수 랭기지라고 불린다.
	let param = function(x){console.log(x)};
	let rt7 = arr5.forEach(param); 
	// 배열의 length 길이만큼 매개값으로 들어온 함수를 실행
	// 매개값으로 들어온 함수의 첫번째 매개값으로 배열의 요소값을 전달한다.
	console.log(rt7); // 반환타입은 undifined(void)
	
	// 변수를 사용하지 않고 익명함수값으로 입력
	arr5.forEach(function(x){
			console.log(x)
		});
	
	// 8) join
	let rt8 = arr5.join();
	console.log(rt8); // 반환타입이 배열을 문자로 바뀜(토큰 디폴트문자는 , )
	console.log(arr5); // 원본은 유지
	
	rt8 = arr5.join('-');
	console.log(rt8); // 반환타입이 배열을 문자로 바뀜(토큰 디폴트문자는 - join뒤 ()에 어떤것을 쓰냐에 따라 달라짐)
	
	// 9) reverse
	let arr9 = [1, 3, 5, 7, 9];
	let rt9 = arr9.reverse(); // 배열 순서를 꺼꾸로 변경된다 
	console.log(rt9); 
	console.log(arr9); // 원본 유지x 
	
	// 응용 - 로또프로그램
	let balls = [];
	for(let i=0; i<45; i+=1){
		balls[i] = i+1;
	}
	console.log(balls);
	
	for(let i=0; i<100000; i+=1){
		let r = Math.floor(Math.random() * balls.length);
		let temp = balls[0];
		balls[0] = balls[r];
		balls[r] = temp
		
	}
	let lottoBall = balls.slice(0, 6);
	console.log(lottoBall);
</script>
</head>
<body>

</body>
</html>

0개의 댓글