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.)