코드스테이츠 수업 11일차!
오늘은 JS 배열강의와 코플릿 푸는 시간이었다.
js 간단 내용 정리와
문제 풀이 중 모르는 문법?속성이 있어서 남겨둔다.
배열
- 순서가 있는 값
->순서는 인덱스라고 부르며, 1이 아닌 0부터 번호를 매김
->대괄호를 이용해서 배열을 만들고,
->각각의 원소는 쉼표로 구분 - .length 속성을 사용하여 배열의 길이를 알 수 있음
let myNumber = [7, 9, 6, 1, 5];
//myNumber[3] = 1 //myNumber 배열의 3번째 인덱스 값은 1
//string도 동일하게 적용
myNumber.length; //5
2차원 배열
let myNumber = [[13,30], [73,8], [44,17]];
//myNumber[1] = [73,8]
myNumber[1][0]; //73
//myNumber 1번째 인덱스 값의 0번째 인덱스 값 73
push, pop, unshift, shift
- push( ) : 배열 끝에 요소 추가
- pop( ) : 배열 끝에 요소 삭제
- unshift( ) : 배열 앞에 요소 추가
- shift( ) : 배열 앞에 요소 삭제
let words = ['she', 'he', 'We'];
words.push('us'); //['she', 'he', 'We', 'us'];
words.pop(); //['she', 'he', 'We'];
words.unshift('us'); //['us', 'she', 'he', 'We'];
words.shift(); //['she', 'he', 'We'];
Array.isArray, indexOf, includes
- Array.isArray : 배열인지 아닌지 판별하는 메서드
- indexOf, includes : 특정 값이 배열에 포함되어 있는지 확인할 수 있는 메서드
let nums = [1, 2, 3]
Array.isArray(nums) //true
Array.isArray([4,5,6]) //true
Array.isArray([]) //true
Array.isArray(123) //false
let words = ['she', 'he', 'We'];
words.indexOf('he') //1
words.indexOf('she') //0
words.indexOf('they') //-1
words.indexOf('We') !== -1 //true
words.indexOf('they') !== -1 //false
words.includes('We') //true
words.includes('they') //false
...전개 연산자
- 전개 구문을 사용하면 배열이나 문자열과 같이 반복 가능한 문자를 0개 이상의 인수 (함수로 호출할 경우)또는 요소 (배열 리터럴의 경우)로 확장하여, 0개 이상의 키-값의 쌍으로 객체로 확장시킬 수 있습니다.
- 비슷하게로는 apply( )가 있다
function sum(x, y, z) {
return x + y + z;
}
const numbers = [1, 2, 3];
console.log(sum(...numbers));
// Expected output: 6
console.log(sum.apply(null, numbers));
// Expected output: 6
const arr = [1,2,3];
let test_arr = [4,5,6];
let test_arr2 = [4,5,6];
test_arr.push(arr);
console.log(test_arr); //[4, 5, 6, [1, 2, 3]]
//ES6
test_arr2.push(...arr);
console.log(test_arr2); //[4, 5, 6, 1, 2, 3]
.reduce
- reduce() 메서드는 배열의 각 요소에 대해 주어진 리듀서 (reducer) 함수를 실행하고, 하나의 결과값을 반환합니다.
- 리듀서 함수는 네 개의 인자를 가집니다.
1. 누산기 (acc)
2. 현재 값 (cur)
3. 현재 인덱스 (idx)
4. 원본 배열 (src)
리듀서 함수의 반환 값은 누산기에 할당되고, 누산기는 순회 중 유지되므로 결국 최종 결과는 하나의 값이 됩니다.
const array1 = [1, 2, 3, 4];
// 0 + 1 + 2 + 3 + 4
const initialValue = 0;
const sumWithInitial = array1.reduce(
(accumulator, currentValue) => accumulator + currentValue,
initialValue
);
console.log(sumWithInitial);
// Expected output: 10
반복문 for of
- for ... of 명령문은 반복가능한 객체(Array, Map, Set, String, TypedArray, arguments 객체 등을 포함)에 대해서 반복하고 각 개별 속성값에 대해 실행되는 문이 있는 사용자 정의 반복 후크를 호출하는 루프를 생성
const array1 = ['a', 'b', 'c'];
for (const element of array1) {
console.log(element);
}
// Expected output: "a"
// Expected output: "b"
// Expected output: "c"
const name = "yeeendy";
for (let i = 0; i < name.length; i++) {
console.log(name[i]);
}
// 결과
// "y"
// "e"
// "e"
// "e"
// "n"
// "d"
// "y"
merge array(배열 합치기)
//예제
arr1 = ['a', 'b'];
arr2 = [1, 3];
//1번째 방법
return [...arr1, ...arr2]; //['a', 'b', 1, 3]
//2번째 방법
return arr1.concat(arr2); //['a', 'b', 1, 3]
.array slice
- 인수로 전달된 범위의 요소들을 복사하여 배열로 반환
- 원본 배열은 변경X
이름이 유사한 splice 메서드는 원본 배열을 변경하므로 주의
const arr = [1, 2, 3];
arr.slice(0, 1); // [1]
arr.slice(1, 2); // [2]
console.log(arr); //[1, 2, 3]
arr.slice(1); //[2, 3] //arr[1]부터 이후의 모든 요소를 복사하여 반환
arr.slice(-1); //[3] //배열의 끝에서부터 요소를 한 개 복사하여 반환
arr.slice(-2); //[2, 3] //배열의 끝에서부터 요소를 두 개 복사하여 반환
immutable
불변성(Immutability)란 말그대로 변하지 않는 것을 의미한다. 불변 데이터는 한번 생성되고나면 그 뒤에는 변할수 없다.
자바스크립트에는 원시 타입(primitive type)으로는
- Boolean,
- String
- Number
- Null
- undefined
- Symbol
이 있으며 이 원시 타입은 불변한다. 이 값은 메모리영역 안에서 변경이 불가능하며 변수에 할당할 때 완전히 새로운 값이 만들어져 재 할당된다.
Array.prototype.join( )
- join() 메서드는 배열의 모든 요소를 연결해 하나의 문자열로 만듭니다.
const elements = ['Fire', 'Air', 'Water'];
console.log(elements.join());
// Expected output: "Fire,Air,Water"
console.log(elements.join(''));
// Expected output: "FireAirWater"
console.log(elements.join('-'));
// Expected output: "Fire-Air-Water"
var a = ['바람', '비', '불'];
var myVar1 = a.join(); // myVar1에 '바람,비,불'을 대입
var myVar2 = a.join(', '); // myVar2에 '바람, 비, 불'을 대입
var myVar3 = a.join(' + '); // myVar3에 '바람 + 비 + 불'을 대입
var myVar4 = a.join(''); // myVar4에 '바람비불'을 대입
'CodeStates > JavaScript' 카테고리의 다른 글
Section1 / Unit9 : 참조 자료형 (0) | 2023.04.27 |
---|---|
Section 1 / Unit8 : [JavaScript] 객체 (0) | 2023.04.26 |
Section1 / Unit6 : 웹앱 만들기(계산기 구현하기) (0) | 2023.04.21 |
Section1 / Unit5 : JS 반복문 & 함수 (0) | 2023.04.20 |
Section1 / Unit5 : JS 조건문 (0) | 2023.04.19 |