일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- VAR
- 리액트
- 멋사
- likelion
- 네트워크
- 제주코딩베이스캠프
- useState
- 이벤트루프
- react
- array
- CSS
- for문
- SS
- Let
- 국비지원
- 멋쟁이사자처럼
- JavaScript
- 화살표함수
- 웹개발
- 타입스크립트
- 코딩
- 내일배움카드
- frontend
- 비동기
- 개발자
- 자바스크립트
- 배열
- 반복문
- 프론트엔드
- 메소드체이닝
Archives
- Today
- Total
Ch.Covelope
Javascript <자바스크립트> 연습 문제 풀이(split, array, for) 본문
728x90
반응형
Javascript <자바스크립트> 연습 문제 풀이(split, array, for)
split, array, for을 이용한 간단한 문제 풀이해보기.
문자열을 split 로 하나씩 자르고 숫자로 더하고 평균 구하기.
let data = '5, 4, 10, 2, 5'.split(',')
// '5, 4, 10, 2, 5' 는 하나의 문자열
// split 으로 문자열을 일정한 구분자로 잘라서 배열로 저장
let result =0; // 결과값을 담을 변수 선언과 0 할당.
for (let i of data){ // 스플릿된 문자열을 for of 배열을 순환한다.
result += parseInt(i)/data.length; // 순환 되면서 정수로 반환한 값을 배열의 길이만큼 나누고 결과값에 더해진다.
} // 하지만 순환될때마다 나눠지기 때문에 효율이 떨어질수있다.
console.log(result);
------------------------------------------------------------------------------------
for (let i of data){
통계 += parseInt(i);
}
console.log(통계/data.length); // 나누기를 밖으로 빼면 좀더 효율적이다.
최종 결과값 - 26
split를 이용해서 문자열을 배열로 반환 후 for of에 넣고 parseInt로 형 변환 후 변수에 담아 숫자로 합계를 구한다.
다음 array의 각 자리수의 합 구하기. (replace, 정규식, join )
let data = [11, 22, 33, 111, 2];
data + ''; // data의 배열을 스트링으로 만들어준다.
data = '11,22,33,111,2'.replace(/,/g,''); //replace("찾을 문자열", "변경할 문자열") g는 정규표현식이다.
01122331112 // replace 된 값
let result = 0; // 결과를 담아줄 변수에 0을 할당
for (let i of data) { //01122331112 이게 for 문으로 들어가면
합계 += parseInt(i); // '0''2''3''4' 이런식으로 하나씩 순회 한다.
} // 순회한 값이 스트링이기 때문에 parseInt 로 형변환해서 숫자로 결과값에 더해준다.
console.log(result); // 결과값 17
# data = data + '' ;
# data = data.replace(/,/g, '');
이렇게 사용하지 않고
data = data.join('') // join 을 사용하면 두가지 프로세스를 한번에 할수있다.
배열의 각 자리수의 합을 구하는 문제. 배열을 스트링으로 형 변환 후 컴마를 없애기 위해 replace를 한다. 그리고 1번 문제와 같이 for of와 parseInt를 사용해서 변수에 담고 결과 갑을 반환한다.
※ join 메소드를 사용하면 좀 더 간결하게 코드를 짤 수 있다.
Array 메서드 sort 사용해서 정렬하기 (Comparefunction)
let data = [10,20,30,1,2,25];
data.sort() // sort의 정렬은 "문자열"의 "유니코드" 코드 포인트를 다른다.
[1, 10, 2, 20, 25, 30] // 그래서 우리가 생각하는 대로 정렬값이 나오지 않는다.
//비교 함수(compareFunction)
data.sort((a,b) => a-b); 오름차순
// [10, 20] 을 비교 함수에 "역순" 으로 전달한다.
// a = 20; b =10;
// return a-b; = return 20 - 10 ; = 10
// return 값이 양수이면 다음비교로 넘어가고 음수값이면 둘의 위치를 변경
// 반복해서 최종적으로 [1, 2, 10, 20, 25, 30] 을 반환한다.
data.sort((a,b) => b-a); 내림차순
// return 하는 a 와 b 의 값을 바꾸면 내림차순이 된다.
sort는 사전적 정렬을 사용하고 있어서 어떤 값에 따라서 원하지 않는 정렬을 반환할 수 있다. 그래서 필요한 게 비교 함수를 사용해서 원하는 정렬 값을 반환하는 연습을 했다.
(참고) sort는 새로운 배열을 반환하는게 아니라 원본 배열이 수정된다 .
728x90
반응형
'JavaScript' 카테고리의 다른 글
Javascript <자바스크립트> Map 메소드 사용하기. (0) | 2021.12.20 |
---|---|
Javascript <자바스크립트> 재귀함수, 즉시실행함수. (0) | 2021.12.16 |
Javascript <자바스크립트> 반복문, while문 (0) | 2021.12.13 |
Javascript <자바스크립트> 반복문, for문 .2 (0) | 2021.12.07 |
Javascript <자바스크립트> 반복문, for문 (0) | 2021.12.06 |
Comments