티스토리 뷰
< 문제 >
1. txt 변수에 e가 몇 개 들어갔는지 구하여라.
2. txt 변수를 5개씩 잘라서 배열에 넣어라.
3. 배열의 요소에 e, z, d, v, n 중 하나 이상 포함되어 있다면, 요소를 삭제하라.
4. 바뀐 배열의 요소 값 중 중복되는 값을 제거하라.
< 문제풀이 >
// 1번 문제풀이
let arr = txt.split("e"); // e가 있는 부분을 기준으로 txt 문자열을 분할
console.log(arr);
console.log(arr.length - 1); // e의 갯수가 n일 때 arr의 요소 갯수는 n+1개
// 2번 문제풀이
let arr2 = [];
let splitFive;
for (let i = 0; i < txt.length; i++) {
if (i%5 == 0) {
splitFive = txt.substr(i, 5); // 0번째 인덱스부터 5개, 5번째 인덱스부터 5개, ...
arr2.push(splitFive); // arr2에 삽입
}
}
console.log(arr2); // ['1e531', '51661', '52e11', '52z1d', '1v4b1', 'n']
// 3번 문제풀이
let ezdvn = [];
arr2.forEach(function(element) {
let e = element.indexOf('e'); //indexOf('') 안의 문자가 없을 경우 -1 리턴
let z = element.indexOf('z');
let d = element.indexOf('d');
let v = element.indexOf('v');
let n = element.indexOf('n');
if (e + z + d + v + n == -5) { // 문제 조건을 만족하는 e, z, d, v, n 값은 모두 -1이므로
ezdvn.push(element);
}
});
console.log(ezdvn); // ['51661']
// 4번 문제풀이
let str = ezdvn[0];
console.log(str); // 51661
let str2;
let temp = [];
let temp2 = [];
for (let i = 0; i < 5; i++) { // str의 글자를 하나씩 떼서 배열에 넣는 for 문
temp.push(str.substr(i, 1));
}
console.log(temp); // ['5', '1', '6', '6', '1']
temp.sort(function(a, b) { return a - b; }); // temp의 각 요소를 오름차순으로 정렬
console.log(temp); // ['1', '1', '5', '6', '6']
str2 = temp[0]+temp[1]+temp[2]+temp[3]+temp[4]; // 배열을 다시 string으로 바꿈
console.log(str2); // 11566
for (let i = 0; i < str2.length; i++) {
let minus = str2.indexOf(temp[i-1]);
let plus = str2.indexOf(temp[i+1]);
if (str2.indexOf(temp[i]) < plus && str2.indexOf(temp[i]) > minus) { // 양 옆 인덱스 값과 비교해서 값이 다르면 push
temp2.push(temp[i]);
} else if (i == 0 && str2.indexOf(temp[i]) < plus) { // 처음 인덱스값은 오른쪽 인덱스값과 비교
temp2.push(temp[i]);
} else if (i == str2.length - 1 && str2.indexOf(temp[i]) > minus) { // 마지막 인덱스값은 왼쪽 인덱스값과 비교
temp2.push(temp[i]);
}
}
console.log(temp2); // ['5']
// 4번 문제풀이 - 다른 방법
let set = new Set(temp); // new Set();은 중복값을 제거하는 기능
console.log(set); // {5}
let uniqueArr = [...set];
consolt.log(uniqueArr); // [5]
'JavaScript' 카테고리의 다른 글
addEventListener 사용법 (0) | 2022.01.10 |
---|---|
콜 스택(call stack) (0) | 2022.01.08 |
spread operator와 rest parameter (0) | 2022.01.07 |
객체 복사 방법 - 얕은 복사 vs. 깊은 복사 (0) | 2022.01.07 |
new 연산자 / 메소드 / Switch 문 (0) | 2022.01.06 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- window 객체
- 자료형
- bom
- History 객체
- keyword
- Char
- location 객체
- 변수
- 컴파일
- stdio.h
- Navigator 객체
- Browser Object Model
- 리액트 #React #props #state #javascript
- long
- Document Object Model
- int
- short
- gcc
- DOM
- c언어
- 키워드
- Screen 객체
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
글 보관함