deck:: Logseq/coding tip - ## **❖ Javascript / Typescript** - ### **► 이차원 배열(n*m) 생성** - id:: 6867f897-928a-4f22-8184-491fa70314db 1. Array.from() 사용법 #card - ```javascript const arr = Array.from({length : n}, () => new Array(m).fill(0)); ``` - id:: 6867f8fc-3249-4ced-91aa-a2c951c11b0b 2. Array().fill() 사용법 #card - ```javascript const arr = new Array(n).fill().map(() => new Array(m).fill(0)); ``` - id:: 6867f8fe-39c6-438b-a045-4f8687ad0b1d 3. 반복문 순회 #card - ```javascript let arr = []; for(int i=0; i {조건식})** #card id:: 686922a8-1c72-4261-8339-aff6ece36f03 - **배열의 모든 요소가 조건식을 만족하는지 확인해서 true/false를 반환하는 매서드** - **elememt : 현재 요소, index : 현재 인덱스(생략가능), array : 원본 배열(생략 가능)** - **배열의 모든 요소가 특정 값인지 혹은 특정 범위에 있는지 확인하는 용도로 사용가능** - ```javascript const arr = [1,2,3,4,5,6,7,8,9,10]; arr.every((v,i) => v===i+1); // true arr.every((v,i,array) => { if(i<[array.length-1]){ return array[i] < array[i+1]; } else { return true; } }); // true arr.every(v => v===arr[0]); // false ``` - ### **◼︎ Array.slice(start_idx, end_idx)** #card id:: 68692600-551c-488b-ad74-de8145729133 - **배열에서 특정 범위의 인덱스 부분만 잘라내서 그 배열을 반환하는 매서드** - **end_idx는 생략 가능하다** - 이 경우에는 start_idx 부터 끝까지 반환한다. - **배열의 start_idx 인덱스 부터 end_idx - 1 인덱스까지의 배열을 잘라내서 반환홤** - 예를 들면 arr.slice(2,7) 은 arr의 인덱스2 부터 인덱스 6까지의 배열을 반환함. - **범위를 초과해도 에러를 내지 않음. 그저 빈 배열을 반환할 뿐임.** - **아무리 호출해도 원본 배열 자체를 바꾸지는 않는다.** - ```javascript const arr = [0,1,2,3,4,5,6,7,8,9,10]; const arr1 = arr.slice(2); // [2,3,4,5,6,7,8,9,10] const arr2 = arr.slice(5,10); // [5,6,7,8,9] const arr3 = arr.slice(12); // [] ``` - ### **◼︎ Array.forEach((element, index, array) => {})** #card id:: 6869280c-f685-44c4-b73e-a33f351be582 - **배열의 모든 요소를 순서대로 순회하면서 코드를 실행하는 매서드** - **element(현재 요소)는 반드시 필요하고, index(현재 인덱스)와 array(원본 배열)는 생략 가능하다.** - **모든 배열을 순회하는 반복문과 비슷하게 사용이 가능하다** - 단 반복문에서 쓰이는 continue나 break는 사용할 수 없다. - return을 continue 처럼 사용할 수 있고, break는 사용할 수 없다. - 즉 break가 꼭 필요하다면 반복문으로 구현한다. - ```javascript const arr = [1,2,3,4,5]; arr.forEach(v => { if(v===3) return; console.log(v); }); // 1 2 4 5 ``` - ### **◼︎ Array.reduce((acc, element, index) => {콜백함수}, initial value)** #card id:: 6869298b-18fd-4524-a697-c1af9e510c34 - **배열의 각 요소별로 순회하며 누적자(acc)를 계산하고 모든 순회를 마친 뒤의 누적자를 반환하는 매서드** - **초기값을 입력하지 않으면 기본적으로 acc는 0으로 초기화 된 채 실행된다.** - **코드가 한줄이면 굳이 return으로 반환을 할 필요는 없으나 계산코드가 2줄 이상이면 누적값을 직접 return 해주어야 한다.** - ```javascript const arr = [1,2,3,4,5]; const sum = arr.reduce((acc,v) => acc + v, 0); // 15 const sum_odd = arr.reduce((acc,v) => { if(v%2===0) return acc; else return acc+v; },0); //9 ``` - ## **❖ Python** - ### **► 이차원 배열(n*m) 생성** #card id:: 6867f994-13d0-4937-90e9-d8aec7be5d67 - ```python arr = [[0]*m for _ in range(n)] ``` - ## **❖ C** - ## **❖ Java** - ## **❖ 프로그래밍 관련 이론 정리**