728x90
반응형
/**
* Array Functions
*/
let iveMembers = [
'안유진',
'가을',
'레이',
'장원영',
'리즈',
'이서'
];
console.log(iveMembers);
// push() , array 제일 끝에 요소 추가
console.log(iveMembers.push('코드팩토리')); // 7 , push된 후 array의 length를 return함
console.log(iveMembers); // [ '안유진', '가을', '레이', '장원영', '리즈', '이서', '코드팩토리' ]
// pop() , array 제일 끝 요소를 제거
console.log(iveMembers.pop()); // 코드팩토리 , 제거되는 요소를 리턴함
console.log(iveMembers); // [ '안유진', '가을', '레이', '장원영', '리즈', '이서']
// shift() , array 제일 앞 요소를 제거
console.log(iveMembers.shift()); // 안유진 , 제거되는 요소를 리턴함
console.log(iveMembers); // [ '가을', '레이', '장원영', '리즈', '이서' ]
// unshift() , array 제일 앞에 요소 추가
console.log(iveMembers.unshift('안유진')); // 7 , unshift된 후 array의 length를 return함
console.log(iveMembers); // [ '안유진', '가을', '레이', '장원영', '리즈', '이서' ]
// splice , 첫번째 argument이상 두번째 argument미만의 항목들을
console.log(iveMembers.splice(0,3)); // [ '안유진', '가을', '레이' ]
console.log(iveMembers); // [ '장원영', '리즈', '이서' ]
iveMembers = [
'안유진',
'가을',
'레이',
'장원영',
'리즈',
'이서'
];
// concat() , push와 비슷하지만 요소가 더해진 배열을 새 메모리에 저장하고 리턴하기때문에 할당하지 않으면 변하지 않는다.
console.log(iveMembers.concat('코드팩토리')); // [ '안유진', '가을', '레이', '장원영', '리즈', '이서', '코드팩토리' ]
console.log(iveMembers); // [ '안유진', '가을', '레이', '장원영', '리즈', '이서' ] 변경x
// slice
console.log(iveMembers.slice(0,3)); // [ '안유진', '가을', '레이' ]
console.log(iveMembers); // [ '안유진', '가을', '레이', '장원영', '리즈', '이서' ] 변경x
// spread operator
let iveMembers2 = [
...iveMembers,
]
console.log(iveMembers2); // [ '안유진', '가을', '레이', '장원영', '리즈', '이서' ]
let iveMembers3 = [
iveMembers,
]
console.log(iveMembers3); // [ [ '안유진', '가을', '레이', '장원영', '리즈', '이서' ] ] 리스트 안에 리스트가 들어감
let iveMembers4 = iveMembers;
console.log(iveMembers4) // [ '안유진', '가을', '레이', '장원영', '리즈', '이서' ] 동일하게 할당
console.log([...iveMembers] == iveMembers); // false , 메모리 공간이 다름
// join
console.log(iveMembers.join()); // 안유진,가을,레이,장원영,리즈,이서 String값으로 반환
console.log(iveMembers.join('/')); // 안유진/가을/레이/장원영/리즈/이서 구분값을 지정 가능
// sort()
// 오름차순
iveMembers.sort();
console.log(iveMembers); // [ '가을', '레이', '리즈', '안유진', '이서', '장원영' ]
console.log(iveMembers.reverse()); // [ '장원영', '이서', '안유진', '리즈', '레이', '가을' ] 역순 정렬
// a,b를 비교했을때
// 1) a를 b보다 나중에 정렬하려면(뒤에두려면) 0 보다 큰 숫자를 반환
// 2) a를 b보다 먼저 정렬하려면(앞에두려면) 0보다 작은 숫자를 반환
// 3) 원래 순서를 그대로 두려면 0을 반환
let numbers = [1,9,7,5,3];
numbers.sort((a,b)=>{
return a > b ? 1 : -1;
})
console.log(numbers); // [ 1, 3, 5, 7, 9 ] 오름차순 정렬
numbers.sort((a,b)=>{
return a > b ? -1 : 1;
})
console.log(numbers); // [ 9, 7, 5, 3, 1 ] 내림차순 정렬
// map() , 요소를 순회하며 값을 리턴한다 , 원본 유지 새값리턴
console.log(iveMembers.map((x) => x)); // [ '장원영', '이서', '안유진', '리즈', '레이', '가을' ]
console.log(iveMembers.map((x) => `아이브 : ${x}`));
/**
* [
'아이브 : 장원영',
'아이브 : 이서',
'아이브 : 안유진',
'아이브 : 리즈',
'아이브 : 레이',
'아이브 : 가을'
]
*/
console.log(iveMembers.map((x)=>{
if(x === '안유진'){
return `아이브 : ${x}`
} else{
return x;
}
}))
/**
* [ '장원영',
* '이서',
* '아이브 : 안유진',
* '리즈',
* '레이',
* '가을' ]
*/
// filter() , 조건에 맞는 값만 리턴 , 원본 유지
numbers = [1,8,7,6,3];
console.log(numbers.filter((x) => true)); // [ 1, 8, 7, 6, 3 ]
console.log(numbers.filter((x) => false)); // [];
console.log(numbers.filter((x) => x % 2 === 0)) // [8,6]
console.log(numbers);
// find() , 조건에 맞는 '첫번쨰'값만 리턴
console.log(numbers.find((x)=> x % 2 === 0)); //8
// fincIIndex() , 조건에 맞는 '첫번째'값의 '인덱스'를 리턴
console.log(numbers.findIndex((x) => x % 2 === 0)); // 1
★ ★ ★
// reduce()
console.log(numbers.reduce((p , n) => p+n, 0)); // 25


728x90
반응형
'코드팩토리 JS' 카테고리의 다른 글
| 11. copy by value and reference (0) | 2025.12.22 |
|---|---|
| 10.object (0) | 2025.12.22 |
| 7.coercion (0) | 2025.12.11 |
| 6. Loops (0) | 2025.11.17 |
| 5. if , switch (0) | 2025.11.02 |