카테고리 없음

JS includes / for ~ of / parseInt

GABOJOK 2023. 5. 29. 02:29

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( )는 

  1. 문자열에 담긴 숫자를 추출한다. 
  2. 문자열에 숫자와 문자가 섞여서 담겨있을 경우 가장 앞에오는게 숫자일 경우에만 숫자를 추출한다. 
  3. 문자열에 담긴 숫자들 중에서 처음 것만 추출한다. 
  4. 문자열에 담긴 소수는 점 이하의 값들은 다 버리고 정수만 추출한다.