JavaScript

javaScript-배열3

용용it 2023. 8. 24. 19:22

.join()

대상 배열의 모든 요소를 구분자로 연결한 문자를 반환.

 

const arr = ['Apple', 'Banana', 'Cherry']

console.log(arr.join())       // Apple,Banana,Cherry
console.log(arr.join(', '))   // Apple, Banana, Cherry
console.log(arr.join('/'))    // Apple/Banana/Cherry

.map()

대상 배열의 길이만큼 주어진 콜백을 실행하고, 콜백의 반환 값을 모아 새로운 배열을 반환

 

기존 배열 유지

const numbers = [1, 2, 3, 4]
const newNumbers = numbers.map(item => item * 2)

console.log(newNumbers) // [2, 4, 6, 8]
console.log(numbers) // [1, 2, 3, 4]
const users = [
	{ name: 'Dragon', age: 100},
	{ name: 'Lee', age: 62},
	{ name: 'Jay', age: 21}
]

const newUsers = users.map(user => {
	return {
    ...user,
    isValid: true,
    email: null
    }
})

console.log(newUsers)  
// 	{ name: 'Dragon', age: 100, isValid: true, email: null },
//	{ name: 'Lee', age: 62, isValid: true, email: null },
//	{ name: 'Jay', age: 21, isValid: true, email: null }

 

return에 있는 전개 연산자이다.

 

const newUsers = users.map(user => ({
    ...user,
    isValid: true,
    email: null
}))

newUsers의 화살표 함수 축소

 


.pop()

대상 배열에서 마지막 요소를 제거하고 그 요소를 반환

 

대상 배열 원본이 변경됨.

 

const fruits = ['Apple', 'Banana', 'Cherry']

console.log(fruits.pop())    // Cherry
console.log(fruits)  // ['Apple', 'Banana']

 

 


.push()

대상 배열의 마지막에 하나 이상의 요소를 추가하고, 배열의 새로운 길이를 반환한다.

 

대상 배열 원본이 변경됨.

 

const fruits = ['Apple', 'Banana', 'Cherry']

const newLength = fruits.push('Orange')
console.log(newLength) //  4
console.log(fruits) //  ['Apple', 'Banana', 'Cherry', 'Cherry']

fruits.push('Mango', 'Strawberry')
console.log(fruits) // ['Apple', 'Banana', 'Cherry', 'Cherry', 'Mango', 'Strawberry']

 

 


.reduce()

대상 배열의 길이만큼 주어진 콜백을 실행하고, 마지막에 호출되는 콜백의 반환 값을 반환.

각 콜백의 반환 값은 다음 콜백으로 전달.

const numbers = [1, 2, 3]
const sum = numbers.reduce((accumulator, currentValue) => {
	return accumulator + currenValue
}, 0)

console.log(sum) // 6



// 화살표 함수를 깔끔하게 정리하면 
const sum = numbers.reduce((acc, cur) => acc + cur, 0)

동작 원리를 알아보자 

 

그 전에, }, 0); 이 부분을 보면 0이 있는데 이건 초기 누적값 이다.

 

콜백 함수의 첫 번째 매개변수인 accumulator에 전달된다.

 

배열의 첫 번째 요소인 '1' 이 currentValue에 전달된다.

 

그리고 콜백 함수에서 약어로 acc + cur 한 값을 반환하고 

다음 순회에서 acc로 반환한다.

 

 

즉, acc에 초기 값 0과 cur에 배열 첫 번째 요소 1을 더하면 1, 이걸 다시 acc에 반환.

초기 누적값 1 + cur에 배열 두 번째 요소 2를 더한다. 3, 이걸 다시 acc에 반환.

초기 누적값 3 + cur에 배열 세 번째 요소 3을 더한다. 6 최종적으로 6이 출력된다.

 

 

const users = [
  { name: 'Dragon', age: 100 },
  { name: 'Lee', age: 27 },
  { name: 'Jay', age: 30 }
];

// 총 나이 계산
const totalAge = users.reduce((acc, cur) => acc + cur.age, 0);
console.log(totalAge); // 157
//	console.log(`평균 나이: ${(totalAge / users.length).toFixed(1)}세`);  
//  평균 나이:  52.3세

// 모든 이름 추출
const namesArray = users.reduce((acc, cur) => {
  acc.push(cur.name);
  return acc;
}, []);

const names = namesArray.join(', ');

console.log(names); // Dragon, Lee, Jay

namesArray를 깔끔하게 줄여보자 

 

const names = users
	.reduce(() => {
    	acc.push(cur.name)
        return acc
    }, [])
    .join(', ')
console.log(names)

'JavaScript' 카테고리의 다른 글

javaScript-객체  (0) 2023.08.25
javaScript-배열4  (0) 2023.08.24
javaScript-배열2  (0) 2023.08.23
javaScript-배열1  (0) 2023.08.19
javaScript- 날짜  (0) 2023.07.27