1. includes( ) 함수
배열이나 문자열에서 특정 값이나, 특정 문자가 포함되어 있는지 확인 가능함!!
값은 true 혹은 false로 반환한다.
function solution(str1, str2) {
return str1.includes(str2) ? 1 : 2;
};
console.log(solution("ab6CDE443fgh22iJKlmn1o", "6CD"));
값을 순회하며 출력하지만, 순회내용이 다른 for ~ in / for ~ of 반복문을 살펴보자.
2. for ~ of 반복문
1.반복적인 성향을 가진 객체여야만 한다. Key 와 value 형태를 가진 객체는 불가하며, 배열과 같이 반복적인 요소를 가지고 있어야만 한다.
이걸 iterable 한 값만 사용 가능하다고 하는것!!!
그래서 순서가 없고 반복이 불가능한 객체라면?? 사용 불가함!!!!!!!!
2. 객체의 key에 접근 할 수 조차 없는 특성을 가지고 있다. 그렇지만 value 에는 접근 할 수 있다.
const introduce = {
name: 'gil dong',
age: 25,
city: 'Seoul',
hobby: 'movie',
}
const person = ['길동', '길서', '길북', '길남'];
// 배열에서의 key: '0', '1' 등의 인덱스 값
// 배열에서의 value: '길동', '길서' 등의 값
for (let thisKey of person) {
console.log(thisKey); // '길동','길서','길북','길남'
console.log(person[thisKey]); // undefined
}
for (let hereKey of introduce) {
console.log(hereKey); // TypeError: introduce is not iterable
}
3. For ~ in 반복문
- 반복적인 성향 , 그러니까 iterable 한 값이 아니여도 사용이 가능하다.
- key에 접근 할수 있다. 그리고 이를 통해서 간접적으로 value값에 접근할 수 있다.
- 모든 열거 가능한 속성들을 순회하도록 해준다.
- 이 문법은 순서가 없는 객체에 임의의 순서를 가지고 접근하는 방식이다.
- 모든 객체 유형에서 사용이 가능하다.
- but!!! 이 for ~ in 반복문은 순서가 없는 객체에 임의의 순서를 가지고 접근하는 방식이기 때문에,
- 순서대로 정렬된 값을 출력해야 하는 경우는 for ~ of 문을 사용하는것을 추천한다고 한당
예를 살펴보자.
// Object 생성
const introduce = {
name: 'gil dong',
age: 25,
city: 'Seoul',
hobby: 'movie',
}
// Array 생성
const person = ['길동', '길서', '길북', '길남'];
for (let key in introduce) {
console.log(key); // 'name','age','city','hobby'
console.log(introduce[key]); // 'gil dong', 25,'Seoul','movie'
}
for (let myKey in person) {
console.log(myKey); // '0','1','2','3'
console.log(person[myKey]); // '길동','길서','길북','길남'
}
4. parseInt( )
문자열 에서 숫자를 추출할때 많이 쓴다.
const number = "5";
console.log(2+number);
이렇게 하면 결과값은 25 가 나온다.
왜냐하면 숫자 2에 문자열 5를 결합해서 그냥 붙여놓기만 했기 때문이다.
이럴때 우리는 parseInt( ) 메소드를 사용할 수 있다.
const number = "5";
console.log(2+parseInt(number));
이렇게 하면 결과값은 7이 나온다.
number 에 담긴 문자열 5를 숫자 5로 변환했기 때문이다.
그런데 만약 이 number라는 변수에 숫자와 문자가 섞인 문자열이 담겨있다면???🧐
const number = "hey 5 years man!!";
console.log(2 + parselnt(number)); // 결과값은 Nan
const number = "5 years man!!";
console.log(2 + parseInt(number)); // 결과값은 7
const number = "hey 5";
console.log(2 + parseInt(number)); // 결과값은 Nan
우리는 여기서 유추할 수 있다. 혹시 parseInt ( ) 이게 앞에 숫자만 추출하는 건가...??🧐🧐
시도해 보자.😎
const number = "5 10 15 20";
console.log(parseInt(number)); // 결과값은 5
그럼 소수도.....?????
const number = "5.235";
console.log(parseInt(number)); // 결과값은 5
정리하자면, parseInt( )는
- 문자열에 담긴 숫자를 추출한다.
- 문자열에 숫자와 문자가 섞여서 담겨있을 경우 가장 앞에오는게 숫자일 경우에만 숫자를 추출한다.
- 문자열에 담긴 숫자들 중에서 처음 것만 추출한다.
- 문자열에 담긴 소수는 점 이하의 값들은 다 버리고 정수만 추출한다.