오랜만에 남아있는 강의를 들으려고 유데미를 켰다. 오늘 배울 부분은 배열 다루기!
Array.isArray(arr)
1.length를 통해 배열이 바뀔 수 있음
const arr = [1,2,3];
arr[3]=4
console.log(arr.length); //4
arr[9]=10;
console.log(arr)//[1,2,3,4, , , , , , 10]
위와 같은 형식으로 배열이 바뀔 수 있다!
array.length =0
을 통해 배열을 초기화 할 수 있다.=> length를 통해 배열이 바뀔 수 있다는것을 의식하고 사용하자!
배열에서 [0],[1] 등 인덱스로 접근하는걸 제한하는게 좋다. 왜냐면 배열은 객체처럼 사용될 수 있기 때문! 그리고 가독성도 떨어진다.
구조 분해 할당을 통해 배열을 분해하자!
예시 1. 함수 인자로 배열을 받을 때 바로 구조 분해 할당으로 받기
//원래 코드
function operateTime(input,operators,is)
{
inputs[0].split('').forEach((num)=> {~~~~}
inputs[1].split('').forEach((num)=> {~~~~}
}
//인덱스로 요소를 가져오지 말자!
function operateTime(input,operators,is)
{
const [firstInput,secondInput] = inputs
firstInput.split('').forEach((num)=> {~~~~}
secondInput.split('').forEach((num)=> {~~~~}
}
//파라미터로 받을 때 부터 구조분해 할당을 해버리자
function operateTime([firstInput,secondInput] ,operators,is)
{
firstInput.split('').forEach((num)=> {~~~~}
secondInput.split('').forEach((num)=> {~~~~}
}
예시 2. html요소 접근할 때
//원래 코드
function clickGroupButton(){
const confirmButton = document.getElementByTagName('button')[0];
const cancelButton = document.getElementByTagName('button')[1];
const resetButton = document.getElementByTagName('button')[2];
}
//클린코드
const [confirmButton,cancelButton, resetButton] = document.getElementByTagName('button')
getElementByTagName
: 태그 이름으로 요소를 가져오는것. 배열로 가져오고 *
을 통해모든 태그에 접근도 가능하다.예시3. 하나만 사용할 때도 구조분해 할당 하기!
//기존에 사용했던 코드
const date = targetDate.toISOString().split('T')[0];
//구조분해할당으로 바꾸기
const [date] = targetDate.toISOString().split('T');
const arguments = {0:1,1:2,2:3}
Array.from(arguments);
const numbers = [1,2,3]
const numbersCopy = [...numbers];
function getWonPrice(priceList){
return priceList
.filter(isOverOneThousand)
.sort(ascendingList)
.map(suffixWon);
}
const array1 = ['a', 'b', 'c'];
for (const element of array1) {
console.log(element);
}
// expected output: "a"
// expected output: "b"
// expected output: "c"
for (const variable in object) {
statement
}
/*
variable
매번 반복마다 다른 속성이름(Value name)이 변수(variable)로 지정됩니다.
object
반복작업을 수행할 객체로 열거형 속성을 가지고 있는 객체
*/
const array = [1, 2, 3, 4, 5];
// checks whether an element is even
const even = (element) => element % 2 === 0;
console.log(array.some(even));
// expected output: true
2.find : 주어진 판별 함수를 만족하는 첫번째 요소의 값을 반환함. 없으면 undefind 반환
const array1 = [5, 12, 8, 130, 44];
const found = array1.find(element => element > 10);
console.log(found);
// expected output: 12
3.every : 배열 안의 모든 요소가 주어진 판별 함수를 통과하는지 테스트. boolean 값 반환
const isBelowThreshold = (currentValue) => currentValue < 40;
const array1 = [1, 30, 39, 29, 10, 13];
console.log(array1.every(isBelowThreshold));
// expected output: true
4.findIndex : 주어진 판별 함수를 만족하는 배열의 첫번째 요소에 대한 인덱스 반환, 없으면 -1 리턴
const array1 = [5, 12, 8, 130, 44];
const isLargeNumber = (element) => element > 13;
console.log(array1.findIndex(isLargeNumber));
// expected output: 3
코테 준비겸 오랜만에 강의 남은 부분을 들었는데, 그동안 코딩하면서 이건가? 저건가? 이렇게 해도되나? 하는 부분에 대한 해답을 들을 수 있었다 !! 클린코드 넘 조항,,,
남은 강의들도 부지런히 들어야디