5일차 - Javascript (배열, 객체)

Yohan·2024년 2월 24일
0

코딩기록

목록 보기
5/156
post-custom-banner

배열

  • 순서가 있는 값
  • 중첩배열 (다차원 -> 1차원)
const arr = [1, [2,3], [4,5]];

// 다차원 -> 1차원 배열로 변환하는 함수
function flasttenArray(arr) {
    let newArr = [];

    for(let i=0; i < arr.length; i++) {
        if(!Array.isArray(arr[i])) { // 배열이 아니라면
            newArr.push(arr[i]);
        } else { // 배열이라면
            for(let j = 0; j < arr[i].length; j++) {
                newArr.push(arr[i][j]);
            }
        }
    }
    return newArr;
}
console.log(flasttenArray(arr));
  • pop() - 지워짐과 동시에 반환하기 때문에 변수에 저장해서 무엇이 지워졌는지 알 수 있음

  • unshift() - 배열의 맨 앞에 값을 추가

  • shift() - 배열의 맨 앞에 값을 제거

  • 4번, 8번, 9번 ,11번

  • 1

function getType(anything) {
    if(typeof(anything) === 'string') {
        return 'string';
    } else if(typeof(anything) === 'number') {
        return 'number';
    } else if(typeof(anything) === 'boolean') {
        return 'boolean';
    } else if(typeof(anything) === 'object' || typeof(anything) === 'array' || typeof(anything) === 'null') {
        return 'object';
    } else if(typeof(anything) === 'undefined') {
        return 'undefined';
    } else if(typeof(anything) === 'function') {
        return 'function';
    } 
}
console.log(getType(['1']));
  

-2

// arr[0] 반환

function getFirstElement(arr) {
  if(Array.isArray(arr)) {
    return arr[0];
  } else {
    return "undefined";
  }
}
console.log(getFirstElement([]));

-3

// arr[arr.length-1] 반환

function getFirstElement(arr) {
    if(Array.isArray(arr)) {
      return arr[arr.length-1];
    } else {
      return "undefined";
    }
}
  console.log(getFirstElement([]));

-4

// index에 해당하는 수가 arr에서 출력

function getNthElement(arr, index) {
    if(arr.length <= index) {
        return 'out of index range';
    } else {
        return arr[index];
    }
}

console.log(getNthElement([1, 3, 5], 1));
console.log(getNthElement([1, 3, 5], 3));
// console.log(getNthElement([], 3));

-5

function computeSumOfAllElements(arr) {
    sum = 0;
    for(i=0; i <arr.length; i++) {
        sum += arr[i];
    }
    return Number(sum);
}
console.log(computeSumOfAllElements([1, 2, 3]));

-6

function getAllWords(str) {
    let newArr = [];
    newArr = str.split(' '); // 잘라서 배열에 들어감
    return newArr;
}
console.log(getAllWords('Radagast-the-Brown'));

-7

function getAllLetters(str) {
    let newArr= [];

    for(i=0; i<str.length; i++) {
        newArr.push(str[i]);
    }
    return newArr;
}
console.log(getAllLetters('Radagast'));

-8

function getLargestElement(arr) {
  //  기준을 0으로 잡지않고 첫 번째 인덱스로 잡음으로써 음수도 처리 가능
  let maxNum = arr[0];

  if(arr.length === 0) {return 0;}
  for(i=1; i<arr.length; i++) {
    if(arr[i] > maxNum) {
      maxNum = arr[i];
    }
  }
  return maxNum;
}
console.log(getLargestElement([-4, -2 ,-9]));

-9

// split을 통해 배열로
// 1번째 인덱스와 길이를 비교해가며 더 긴것들을 longIndex에 넣음

function getLongestWord(str) {
  str = str.split(' ');
  let longIndex = str[0];
  
  for(i = 1; i < str.length; i++) { // ['I', 'love', 'javascript']
    if(longIndex.length < str[i].length) {
      longIndex = str[i];
    }
  }
  return longIndex;
}
console.log(getLongestWord('I love javascript javascrips'));

-10

function getEvenNumbers(arr) {
    let result = [];

    for(i=0; i<arr.length; i++) {
        if(arr[i] % 2 === 0) {
            result.push(arr[i]);
        }
    }
    return result;
}
console.log(getEvenNumbers([1, 2, 3, 4]));

-11

function addToFront(arr, el) {
    arr.unshift(el);
    return arr;
}
console.log(addToFront([1,2],3));

-12

function addToBack(arr, el) {
    arr.push(el);
    return arr;
}
console.log(addToBack([1,2],3));

-13

function mergeArrays(arr1, arr2) {
    let result = arr1.concat(arr2);
    return result;
}
console.log(mergeArrays([1, 2], [3,4]));

-14

// (['a', 'b', 'c', 'd', 'e'], 2) -> ['d', 'e']


function getElementsAfter(arr, n) {

    if(arr.length === 0) {
        return [];
    } else if(arr.length <= n) {
        return [];
    } else {
        return arr.slice(n + 1);
    }
}
console.log(getElementsAfter(['a', 'b', 'c', 'd', 'e'], 3));

-15

// (['a', 'b', 'c', 'd', 'e'], 2) -> ['d', 'e']


// splice - 범위에 해당하는 부분을 삭제하고 반환
function getElementsAfter(arr, n) {

    if(arr.length === 0) {
        return [];
    } else if(arr.length <= n) {
        return [];
    } else {
        return arr.slice(0 , n);
    }
}
console.log(getElementsAfter(['a', 'b', 'c', 'd', 'e'], 3));
  

-16

function getAllElementsButFirst(arr) {
    return arr.slice(1,arr.length);
}
console.log(getAllElementsButFirst([1, 2, 3, 4]));

-17

function getAllElementsButFirst(arr) {
    return arr.slice(0,arr.length-1);
}
console.log(getAllElementsButFirst([1, 2, 3, 4]));

-18

function getAllElementsButFirst(arr) {
    arr.shift();
    return arr;
}
console.log(getAllElementsButFirst([1, 2, 3]));

-19

function getAllElementsButFirst(arr) {
    arr.pop();
    return arr;
}
console.log(getAllElementsButFirst([1, 2, 3]));

-20

-21

-22

-23

function getAllElementsButNth(arr, n) {
    let result = [];

    for(i = 0; i < arr.length; i++) {
        if(i === n) {
            continue;
        } else {
            result.push(arr[i]);
        }
    }
    return result;
}
console.log(getAllElementsButNth(['a', 'b', 'c'], 2));

-24

function createPhoneNumber(arr) {
    // 8자리
    if(arr.length === 8) {
        let head = "010";
        let body = arr.slice(0,4).join('');
        let tail = arr.slice(4).join('');
        return `(${head})${body}-${tail}`;
    
    // 11자리
    } else if(arr.length === 11) {
        head = arr.slice(0,3).join('');
        let body = arr.slice(3,7).join('');
        let tail = arr.slice(7).join('');
        return `(${head})${body}-${tail}`;
    }
}

console.log(createPhoneNumber([0, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8]));

-25

// num 입력 - num + 1 리턴

function fibonacci(num) {
    // let fiboArr = [0, 1];
    let fiboArr = [];
    for(let i=0; i < num + 1; i++) {
        if(i === 0) {
            fiboArr.push(0);
        }
        else if(i === 1) {
            fiboArr.push(1);
        } else {
            fiboArr.push(fiboArr[i - 1] + fiboArr[i - 2]);
        }
    }
    return fiboArr;
}
console.log(fibonacci(5));

객체

  • name.value
    (let value = "요한";) 해도 수정안됨, 위는 변수가 x 아래는 변수
profile
백엔드 개발자
post-custom-banner

0개의 댓글