순서
가 있는 값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));