아유 배열 분명 개념학습할때는 이해가 됐다고 생각했는데 코플릿을 푸는 순간 좌절되고 말았다... 하지만 풀다보니 재미는 있다 ㅎㅎ 해결되면 바로 뿌듯함이 밀려온다!! 코플릿을 다시 한번 둘러보려한다.
.split()
:string 객체를 지정한 구분자를 이용하여 여러개의 문자열로 나눈다. str='I am fine'
str.split(' ');// 띄어쓰기로 나눔 ['I', 'am', 'fine']
var arr=[];
for(let i=0;i<str.length; i++){
arr.push(str[i]); //맨뒤 추가
}
let max = arr[0];
for (let el of arr) {
if (el > max) {
max = el;
}
}
return max;
}
=> 여기서 of
를 이용하여 배열을 둘러보기가 가능하였다. 반복문을 사용해도 좋다.배열의 길이까지!! 위의 예제는 큰 값이고 가장 긴단어를 리턴할때는 split을 통해 먼저 나누는 과정이 필요하였다.
의사코드를 어떻게 작성해야할까 고민이 많았다. 또 의사코드 없이 바로 쓰려니 어려움이 있었다. 페어님과 고민을 하다가 가장 큰값을 부르는 함수를 사용하였더니 통과가 되긴하였지만 둘다 이 방법 말고 다른 방법이 궁금하였고 레퍼런스를 봐도 조금 어려웠다. 하지만 실시간 세션을 통해 바로 이해가 되었다. 우리가 문제를 풀때 의사코드를 썼다면 이해가 좀더 되지 않았나 싶다.앞으로는 의사코드를 조금이라도 천천히 작성하는 방법에 익숙해져야겠다는 생각이 들었다.
.concat
: 인자로 주어진 배열이나 값들을 기존 배열에 합쳐서 배열을 반환 return arr1.concat(arr2); ///[arr1, arr2]
.slice()
: begin부터 end까지에 대한 새로운 배열 객체 반환(end는 미포함) arr=[1,2,3,4,5]
return arr.slice(1,4); //[2,3,4)]
*한번 정리를 해보겠다.
스플릿을 풀면서 이 두가지가 구분이 정확히 되지 않아 풀면서도 '이게왜....?' 라는 생각을 많이 한것 같닼ㅋ쿠 그래도 정리를 하면서 코플릿을 다시 보니 이해가 바로 된다. 역시 정리가 필요해..
Mutable method(원본배열을 직접 변경)
Array.shift()
Array.unshift()
array.push()
Array.pop()
Array.splice(): 배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경
Immutable method(원본배열을 변경하지 않음, 새로운 배열을 생성하여 반환)
Array.concat(): 인자로 주어진 배열이나 값들을 기존 배열에 합쳐서 새 배열을 반환
Array.slice(): 일부분을 복사하여 새로운 배열 생성
Array.join(): 배열의 모든 요소를 연결해 하나의 문자열로 생성