JavaScript 배열 방법 안내 - 01
12753 단어 arrayjavascript
Array.map() 메서드.
map
메서드는 콜백 함수를 인수로 사용하고 지정된 배열의 모든 요소에 대해 호출됩니다. map
함수는 호출 함수의 결과로 새 배열을 반환합니다. map
함수는 원래 배열을 수정하지 않습니다. 따라서 불변 함수입니다.위의 모든 사항을 설명하기 위해 간단한 예부터 시작하겠습니다.
const fruits = ["apple", "Avocado", "Banana", "Mango", "Pineapple", "Orange"];
const result = fruits.map((fruit) => {
return `I have a ${fruit} now.`;
});
console.log(result);
/* [
'I have a apple now.',
'I have a Avocado now.',
'I have a Banana now.',
'I have a Mango now.',
'I have a Pineapple now.',
'I have a Orange now.'
]*/
console.log(fruits);
// [ 'apple', 'Avocado', 'Banana', 'Mango', 'Pineapple', 'Orange' ]
이제 콜백 함수가 현재 처리된 값을 첫 번째 인수로 취하여 처리하고 새 값을 반환하는 것을 지웁니다. 그런 다음 새 어레이로 푸시합니다.
Take a min and imagine what if we didn’t pass any parameter to map function?
fruits.map(()=> {})
콜백 함수에는 선택적 매개변수가 거의 없습니다. 콜백 함수의 두 번째 인수는 배열에서 현재 호출된 값의 인덱스임을 언급하고 싶습니다.
const fruits = ["apple", "Avocado", "Banana", "Mango", "Pineapple", "Orange"];
const result = fruits.map((fruit, index) => {
const fruitObj = {};
fruitObj[index] = fruit;
return fruitObj;
});
console.log(result);
// Output
/*[
{ '0': 'apple' },
{ '1': 'Avocado' },
{ '2': 'Banana' },
{ '3': 'Mango' },
{ '4': 'Pineapple' },
{ '5': 'Orange' }
]
*/
Array.reduce() 메서드
메서드 이름이 말했듯이 이 메서드는 하나의 값으로 줄어듭니다. 보다 구체적으로 이
reduce
메서드는 콜백 함수로 제공하고 각 요소를 호출하는 reducer function
를 실행합니다. 마지막으로 reduce
함수는 단일 값을 반환합니다.이 감속기 기능에는 2개의 매개변수가 필요합니다.
reducer function
내에서 다음 반복에서 누산기로 사용할 값을 반환해야 합니다(undefined
를 반환하지 않는 한). 처음에는 배열의 첫 번째 요소가 누산기이고 두 번째 요소가 현재 값입니다. (이는 reducer
함수를 처음 실행할 때만 발생하며 initialValue
를 제공하지 않은 경우)예를 들어 보겠습니다.
const marks = [23, 65, 12, 87, 34];
const reducer = (acc, val) => {
console.log(`current acc: ${acc}`);
console.log(`current val: ${val}`);
return val;
};
const result = marks.reduce(reducer);
// const result = fruits.reduce(reducer);
console.log(result);
/*
current acc: 23
current val: 65
current acc: 65
current val: 12
current acc: 12
current val: 87
current acc: 87
current val: 34
34
*/
// because finally it return the last value of the array
우리는 그것이 어떻게 작동하는지 보았습니다. 의미 있는 예를 보자. 이 배열의 합계를 얻으려면
reducer
함수를 아래와 같이 변경할 수 있습니다.const reducer = (acc, val) => {
return val + acc;
};
그러나
reducer
함수에서 허용하는 다른 2개의 선택적 매개변수가 있다는 것을 아는 것이 좋습니다. currentIndex
및 array
입니다.reduce
함수는 감속기 함수와 initialValue
두 번째 인수를 취합니다.const marks = [23, 65, 12, 87, 34];
const reducer = (acc, val) => {
console.log(`current acc: ${acc}`);
console.log(`current val: ${val}`);
return val + acc;
};
// array.reduce(reducerFunction, initialValue)
const result = marks.reduce(reducer, 30);
console.log(result);
// result
/*current acc: 30
current val: 23
current acc: 53
current val: 65
current acc: 118
current val: 12
current acc: 130
current val: 87
current acc: 217
current val: 34
251
*/
특별 시나리오:
시나리오 01:
배열에는 하나의 값만 있습니다.
reduce
함수에 초기값이 없습니다.결과: 배열의 솔로 값이 반환됩니다.
const marks = [30];
const result = marks.reduce((acc, val) => {});
console.log(result);
// 30
시나리오 02:
배열에 값이 없습니다.
reduce
함수의 초기값이 있습니다.결과: 초기 값이 반환됩니다.
const marks = [];
const result = marks.reduce((acc, val) => {}, 30);
console.log(result);
// 30
Above both scenarios, the callback function will not be called.
둘 다 제공되지 않으면(값과 초기 값이 있는 배열) 다음을 얻습니다
TypeError.
.이상으로 이 글을 마치겠습니다. 이와 관련하여 질문할 사항이 있으면 여기에 댓글을 남겨주세요. 또한 내 이해에 따라 이것을 썼습니다. 따라서 잘못된 점이 있으면 주저하지 말고 저를 수정하십시오. 정말 감사합니다.
오늘의 친구들을 위한 것입니다. 곧 봐요. 고맙습니다.
참조:
MDN JavaScript Array
기본 이미지credit
Reference
이 문제에 관하여(JavaScript 배열 방법 안내 - 01), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rasikag/guide-through-javascript-array-methods-01-13pk텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)