배열인지 아닌지 >> Array.isArray
배열안에 포함요소 찾기(몇번째 index에 있는지 나옴) >> indexOf
for문으로 배열 훑기 >> for(let el of arr){}
배열 합치기 >> concat
//push 는 바로 리턴하게되면 푸쉬된 배열의 길이값만 나옴
그래서 arr을 새로 리턴해줘야함 아래 코드 참조
function addToBack(arr, el) {
arr.push(el)
return arr;
}
//addToBack([1,3,2,1],3)
결과 (5) [1, 3, 2, 1, 3]
---------------------------------------------------
function addToBack(arr, el) {
return arr.push(el)
}
// addToBack([1,3,2,1],3)
결과 5
반대로
slice나 split은 이뮤터블한 메소드기 때문에
push처럼 arr를 리턴해주면 원본배열 그대로나와서
변수에 담아줘서 리턴을 해주던가 바로 리턴 해야함
function getAllElementsButFirst(arr) {
// arr.shift(); <<shift 를쓸경우는 arr을 리턴하지만
// return arr;
return arr.slice(1) <<slice는 바로리턴
}
피보나치
0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1
그 다음 2번째 피보나치 수부터는 바로 직전의 두 피보나치 수의 합으로 정의함.
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...
내가짠 코드
function fibonacci(num) {
if(num === 0){
return [0];
}
let arr = [0, 1];
for(let i= 0; i < num -1; ++i){
arr.push(arr[arr.length - 1] + arr[arr.length -2]);
}
return arr;
}
.
.
레퍼런스 코드
function fibonacci(num) {
let fibNum = [];
for (let i = 0; i <= num; i++) {
if (i === 0) {
fibNum.push(0);
} else if (i === 1) {
fibNum.push(1);
} else {
fibNum.push(fibNum[i - 2] + fibNum[i - 1]);
}
}
return fibNum;
}