메소드

AceBed·2022년 1월 6일
0

메소드를 알기전에 우리는 객체에 대해 먼저 이해해야 한다.
이름key과 값value로 이루어진 property를 객체라고 부른다.

cat.name = "금이"
cat.color = "금색"
cat.favorite = "츄르"

자바스크립트의 객체는 다양한데, 함수가 들어올수도 있다.
이것을 메소드 라고 한다.

cat.play()
cat.grooming()
cat.fight()

자바스크립트는 이러한 메소드를 이용해 객체에게 명령을 내릴 수 있게된다.


for없이 반복문

for반복문은 조건을 걸어 배열을 정리할수있는 유용한 문법이지만, for을 두번 쓰게되는 이중for문을 사용하게 되면 코드의 가독성이 매우 떨어지는 문제가 발생한다.

arrow함수

ES6부터 arrow함수 화살표함수를 사용할 수 있다.

let arr = [1,2,3]

for(let i=0; i<arr.length; i++) {
  console.log(arr[i])
}

arr.forEach(v => console.log(v))
// 위의 for문과 forEach메소드는 같은 console을 출력한다.

// arrow함수는 생략 가능한 것들이 있다.
arr.forEach(function (v) { (console.log(v)) })
arr.forEach((v) { (console.log(v) })
// 인자값이나 중괄호 내 코드가 하나, 한줄 일시 각각 생략이 가능하다.
arr.forEach(v => console.log(v))

forEach()

위 코드에서 보인 forEach()는 배열에 쓸 수 있는 메소드 중 하나이다.
배열의 length 만큼 반복해서 콜백함수 를 호출한다.
콜백함수 의 매개변수로 value에 요소값, index에 배열인덱스, array에 원본 배열이 들어온다.
배열.forEach((value, index, arry) => { ..code.. })
배열의 value를 비교해 같으면 1을, 다르면 -1을 리턴한다.


객체형 배열

자바스크립트는 배열을 담을시 객체형태로 담게된다.
문자열, 숫자도 각각 객체형태로 들어오게된다.

문자와 숫자 하나하나에도 keyvalue가 존재하는 것이다.

new String()

자바스크립트에 기본으로 내장되어 있는 class다.
문자를 배열에 넣기 위해 변환한다.
이 때 문자열은 object 형태로 배열에 들어가게 된다.

let txt = '1e5315166152e1152z1d1v4b1n`
console.log(typeof txt) // string

let txtobj = new String(txt);
console.log(typeof txtobj) // obj

slice()

slice(start, end)
start 배열값을 추출할 인덱스시작점 부터
end 추출을 종료시킬 인덱스를 정한다.
인덱스 시작점이 정해지지 않으면 0부터 시작한다.
시작점이나 종료점을 음수로 지정할 경우, 배열의 끝에서부터 길이를 나타낸다.

function sliceFive1() {
  let arrayFive = [];
  for(let i=0; i<txtobj.length; i+=5) {
    let cal = txtobj.slice(i, i+5) 
    // i가 반복되며 i인덱스시작점부터 i+5인덱스종료점까지 추출한다.
    arrayFive.push(cal);
    // 추출한 값을 새로운 배열에 push한다.
  }
  return arrayFive
}
console.log(sliceFive1())

push()

배열 끝에 요소를 추가한다.
배열의 앞쪽에 요소추가 : .unshift()

let arr = [1, 2, 3]

arr.push(5);
// arr=[1, 2, 3, 5]

indexOf()

string.indexOf(searchvalue, position)
문자열string에서 특정 문자열searchvalue를 찾고, 검색된 문자열이 첫번째로 나타내는 index를 리턴한다.

  • searchvalue: 찾을 문자열
  • position: 기본값은 0, searchvalue를 찾기 시작할 위치
    indexOf를 사용해 중복값을 제거할수 있다.
let arr = [5, 7, 8, 9, 10]
let solution = [0, 2]
let result = [];
for (let i=0; i<arr.length; i++) {
  if (solution.indexOf(i) === -1) { 
    // indexOf는 앞,뒤 인덱스를 비교하며 같으면 1을, 다르면 -1을 반환한다.
    result.push(arr[i])
  }
}
console.log(result)
// [7, 9, 10]

switch

if문과 같은 조건문이다.
else if 대신 사용할수 있으며, 가독성이 매우 뛰어나다.

let alphabetIndex = []
let arr = sliceFive1();
for (let i=0; i<arr.length; i++) {
  let ind = arr[i]
  console.log(ind)
  for (let j=0; j<ind.length; j++) {
    console.log(j)
    let jnd = ind[j]
    console.log('jnd = '+jnd)
    // 1for문 한번 돌고 나온 ind에서
    //
    switch(jnd) { // 비교할 값을 jnd로 설정
      case 'e': // 조건을 case로 여러개 설정할수 있는게 switch문의 장점이다
      case 'z':
      case 'd':
      case 'v':
      case 'n':
        alphabetIndex.push(i)
        break; // 수행 후 마지막 break를 통해 switch문을 빠져나온다.
    }
  }
}
console.log(alphabetIndex);
profile
재시작, restart, リスタート, sự khởi động lại

0개의 댓글