배열
[JS] 배열 순서 바꾸기 (맞교환)
splice() 메서드에 대해서 // Array.splice(시작위치, 삭제할 아이템 개수, 추가할 아이템) const array = [1, 2, 3]; array.splice(0, 1); // [1] array.splice(0, 0, 5); // [] console.log(array); // [5, 2, 3] splice() 메서드의 두 번째 인자는 삭제할 개수입니다. (1은 fromIndex 위치의 value 값) 두 번째 인자의 값이 0일 시, value 값이 제거되지 않습니다. 세 번째 인자 값에는 배열에 추가할 요소입니다. (없을 시 제거만 진행) Array.splice() 메서드는 원본배열에 직접적인 관여를 합니다. (참조) 위치 이동하기 function moveValue(array, from..
[JS] 배열을 객체로 변환 (Array to Object)
Object.fromEntries() 메서드 const entries = [ ['first', 'apple'], ['second', 7], ]; const object = Object.fromEntries(entries); console.log(object); // {'first': 'apple', 'second': 7} 다음과 같이 key-value 형식으로 갖추어진 배열은 Object.fromEntries() 메서드를 사용하면 객체로 변환하여 반환해 줍니다. forEach(), reduce() 메서드 const array = ['apple', 'banana', 'mango']; // 1. const object = {}; array.forEach((value, index) => { object[ind..
[JS] 배열 초기화 시키기 (빈 배열)
3가지 방법 모두, 원본 배열에서 값을 제거하는 참조 방식을 사용합니다. length 속성 const array = [1, 2, 3, 4, 5]; array.length = 0; 배열의 길이를 수정하면 해당 길이만큼 배열의 크기가 바꿔지며 0으로 지정하면 배열은 초기화됩니다. splice() 메서드 const array = [1, 2, 3, 4, 5]; array.splice(0); // 2번째 인자가 없으면 모든 값을 제거 splice(0)을 사용하면 처음부터 끝까지 원본 배열에서 잘라 반환하기에 초기화를 시켜줄 수 있습니다. pop() 메서드 const array = [1, 2, 3, 4, 5]; while(array.length) array.pop(); pop() 메서드는 배열의 마지막에 존재하는 ..
[JS] Sort(), 다중 조건 정렬
단일 조건 const data = [ { age: 19, name: '김씨' }, { age: 25, name: '박씨' }, { age: 18, name: '김씨' }, { age: 19, name: '나씨' }, ]; data.sort((a, b) => a.age - b.age); 해당 데이터에서 정렬을 시켜주면, age(나이)가 같은 값은 정렬이 되지 않습니다. 이를 해결하기 위해선 다중 조건으로 정렬을 해줘야 합니다. 다중 조건 const data = [ { age: 19, name: '김씨' }, { age: 25, name: '박씨' }, { age: 18, name: '김씨' }, { age: 19, name: '나씨' }, ]; data.sort((a, b) => a.age - b.age ..
[JS] 문자열 배열 정렬 (영어,한글)
GitHub - hyukson/hangul-util: 한글 관련 자바스크립트 유틸 라이브러리입니다. 한글 관련 자바스크립트 유틸 라이브러리입니다. Contribute to hyukson/hangul-util development by creating an account on GitHub. github.com 'hangul-util' 라이브러리 코드를 기반으로 작성된 포스트입니다. sortByASC(['멜론', '귤', '참외']); // [ '귤', '멜론', '참외' ] sortByGroups(["대리", "사원", "사장", "회장", "부장"], groups); // [ '회장', '사장', '부장', '대리', '사원' ] Array.sort() 메서드 const data = ['a가가', '나나..
[JS] 배열을 n개씩 나누어 묶기(Chunk)
1차원 배열을 n개씩 묶어서 정한 개수만큼 2차원 배열로 바꿔서 반환시켜 주는 함수를 제작해 보았습니다. 코드 function chunk(data = [], size = 1) { const arr = []; for (let i = 0; i [ [1,2], [3,4] ] chunk 함수의 매게 변수로 자를 원본 배열과 개수(n)를 받아줍니다. Array.slice 메서드를 이용해서 i번째부터 ( i + 나눌개수 ) 만큼의 배열 값을 가져와 새로운 배열에 담아줍니다. 해당 방식으로 데이터가 모두 Chunk 되면 새로운..
[JS] 배열 마지막 값 가져오기
JS에서 배열의 마지막 값을 가져오는 방법은 다양합니다. 많은 방법 중 배열의 마지막 값을 가져오는 대표적인 방법 3가지를 소개합니다. 배열의 길이를 통해 구하기 const arr = [1, 2, 3, 4, 5]; // 마지막 값 arr[arr.length - 1]; Array.length 속성을 이용해 배열의 길이에서 -1을 뺏 인덱스에 접근하면, 배열의 마지막 값을 가져올 수 있습니다. Array.at 메서드 사용하기 const arr = [1, 2, 3, 4, 5]; // 마지막 값 arr.at(-1); // 뒤에서 n번째 값 arr.at(-n); // arr.at(0) -> 1 == arr[0] -> 1 at() 메서드는 정수를 값으로 받아 배열의 해당 인덱스의 요소를 반환하는 메서드입니다. 흔히..
[JS] 배열에서 중복 값 제거하기
기본값 // 배열안에 값 const arr1 = [1, 2, 3, 4, 5, 1, 3, 5] // 배열안에 객체 const arr2 = [{name: "레드"}, {name: "그린"}, {name: "블루"}, {name: "레드"}, {name: "블루"}] 해당 값과 같이 배열에 중복된 값이 들어 있는 경우, 중복된 값을 제거하는 방법을 소개하겠습니다. 첫 번째 방법 ( Set ) const result = [...new Set(arr1)]; // [1, 2, 3, 4, 5] Set 객체 내 값은 하나만 나타날 수 있습니다. 즉 어떤 값이 든 유일하게 만들어주는 검사를 진행합니다. 이를 이용하여 Set 객체를 생성할 때 배열을 넣어주면 중복된 값이 사라집니다. Set 객체를 이용했기에 다시 배열의 ..
[JS] 문자열 거꾸로 뒤집기
자바스크립트에서는 문자열 자체로 뒤집는 내장 메서드는 존재하지 않지만, 배열을 뒤집는 메서드는 존재합니다. 그리고 문자열을 배열로 바꾸는 방법도 존재합니다. 해당 방법을 응용하여 문자열을 거꾸로 뒤집을 수 있습니다. // 문자열을 배열로 const str = "12345"; 1. [...str] 2. str.split(""); 코드 const str = "123456789"; const reverseStr = [...str].reverse().join(""); console.log(str); // 123456789 console.log(reverseStr); // 987654321 문자를 배열로 나눠주고 reverse 메서드로 배열을 뒤집어 줍니다. 그 후 join 메서드로 배열을 공백 없는 하나의 문자..
[PHP] 다차원 배열 1차원 배열로 바꾸기
코드 $multiArr = [['a', 'b', 'c'], [1, 2, 3]]; $arr = array_merge(...$multiArr); // ['a', 'b', 'c', 1, 2, 3]; 하위 배열 요소를 묶어 새로운 배열을 만드는 방법입니다. PHP 5.6 이상에서 array_merge 함수로 간단하게 2차원 배열을 병합할 수 있습니다. 해당 코드는 키가 적용된 배열에서도 정상 작동되며 안될 시 아래 코드를 사용해보세요. $arr = array_merge(...array_values($multiArr));
[JS] 배열 특정 값 포함 여부, 중복체크 (includes, indexOf, some, every)
includes const array = [1, 2, 3, 4, 5]; array.includes(6); // false array.includes(3); // true array.includes(3, 3); // false includes 메서드는 배열이 특정 요소의 포함 여부를 판별합니다. 첫 인자값에는 탐색할 요소를 보내며 두번째 인자값에는 탐색을 시작할 위치를 보냅니다. (기본 값 0) indexOf const array = [1, 2, 3, 4, 5]; array.indexOf(6); // -1 array.indexOf(3); // 2 array.indexOf(3, 3); // -1 indexOf 메서드는 배열에서 특정 요소를 찾을 수 있는 첫 번째 인덱스를 반환하고 존재하지 않으면 -1을 반환..
[JS] 다중 배열 하나의 배열로 묶기 (flat)
flat 메서드 const newArr = arr.flat([depth]) flat 메서드는 모든 배열 요소를 지정한 깊이까지 이어 붙인 새로운 배열을 생성하는 메서드입니다. 빈 요소가 있으면 무시하며 depth에 따라 합치는 정도를 정할 수도 있습니다. (기본은 1입니다.) [1, 2, [3, 4]].flat(); // [1, 2, 3, 4] [1, 2, [3, 4, [5, 6]]].flat(); // [1, 2, 3, 4, [5, 6]] [1, 2, [3, 4, [5, 6]]].flat(2); // [1, 2, 3, 4, 5, 6] [1, 2, [3, 4, [5, 6, [7, 8, [9, 10]]]]].flat(Infinity); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 어디서 ..