중요한 인터뷰 질문이 포함된 Map(), Filter(), reduce()
31831 단어 webdevarraybeginnersjavascript
이 기사에서는 map, filter, reduce를 사용하는 이유와 방법에 대해 알아봅니다.
지도
map() 메서드는 기존 배열에서 새 배열을 만드는 데 사용되며 첫 번째 배열의 각 요소에 함수를 적용합니다.
통사론:
var new_array = arr.map(function callback(element, index, array) {
// Return value for new_array
}[, thisArg])
따라서 원래 arr.map 함수는 콜백 함수를 인수로 사용하며 해당 콜백 함수에는 세 개의 인수가 전달될 수 있습니다.
ㅏ. 현재 가치
비. 현재 값의 인덱스 [선택 사항]
씨. 배열 [선택 사항]
Map()의 구현
콜백 함수는 배열 arr의 모든 값에 대해 반복하고 배열을 수정하고 새 배열에 값을 저장합니다.
지도 기능을 사용하면 새 배열을 초기화할 필요가 없습니다.
배열이 있고 모든 값이 이전 값의 두 배인 다른 배열을 원한다고 가정해 보겠습니다.
const arr=[1,2,3,4,5];
function double(x)
{
return x*2;
}
const output=arr.map(double);
console.log(arr);
화살표 함수를 사용하여 동일한 코드 작성
const output=arr.map((x)=>{
return x*2;
});
console.log(arr);
필터
filter()
메서드는 배열의 각 요소를 가져와 이에 대한 조건문을 적용합니다. 이 조건이 true를 반환하면 요소가 출력 배열로 푸시됩니다. 조건이 false를 반환하면 요소가 출력 배열로 푸시되지 않습니다.
따라서 원래 Array.filter 함수는 콜백 함수를 인수로 사용하며 해당 콜백 함수에는 세 개의 인수가 전달될 수 있습니다.
ㅏ. 현재 가치
비. 현재 값의 인덱스 [선택 사항]
씨. 배열 [선택 사항]
var new_array = arr.filter(function callback(element, index, array) {
// Return true or false
}[, thisArg])
배열에서 홀수를 필터링하고 싶다고 가정해 보겠습니다.
const arr=[1,2,3,4,5]
function isOdd(x)
{
return x%2;
}
const output=arr.filter(isOdd);
console.log(output);
우리가 취할 수 있는 또 다른 예는 배열에서 4보다 큰 숫자를 찾는 것입니다.
const arr=[1,2,3,4,5]
const output=arr.filter((x)=>{
return x>4
});
console.log(output);
줄이다
콜백 인수는 배열의 모든 항목에 대해 한 번 호출되는 함수입니다. 이 함수는 네 개의 인수를 사용하지만 종종 처음 두 개만 사용됩니다.
accumulator - 이전 반복의 반환된 값
currentValue - 배열의 현재 항목
index - 현재 항목의 인덱스 [선택 사항]
array - reduce가 호출된 원래 배열 [선택 사항]
initialValue 인수는 선택 사항입니다. 제공된 경우 콜백 함수에 대한 첫 번째 호출에서 초기 누산기 값으로 사용됩니다.
통사론
arr.reduce(callback[, initialValue])
모든 배열 요소의 합계를 찾는 예를 들어 보겠습니다.
const arr=[1,2,3,4,5];
const output=arr.reduce(function(accumulator,currentIdx){
acc+=curr;
return acc;
});
console.log(output);
이러한 배열 방법에 대한 몇 가지 중요한 질문을 시도하여 개념을 명확히 합시다.
Q1. 객체 사용자의 배열이 주어지면 fullname을 출력합니다.
const users=[
{firstName:"john",lastName:"Biden",age:26},
{firstName:"jimmy",lastName:"cob",age:75},
{firstName:"sam",lastName:"lewis",age:50},
{firstName:"Ronald",lastName:"Mathew",age:26},
];
//List of fullname
const output=users.map((x)=>{
return x.firstName+" "+x.lastName;
})
console.log(output);
Q2. 사용자 개체 배열이 주어지면 특정 연령의 사용자와 빈도를 인쇄합니다.
const users=[
{firstName:"john",lastName:"Biden",age:26},
{firstName:"jimmy",lastName:"cob",age:75},
{firstName:"sam",lastName:"lewis",age:50},
{firstName:"Ronald",lastName:"Mathew",age:26},
];
앞으로 진행하기 전에 🤔 여기서 사용할 수 있는 배열 방법을 생각해보세요!
Analogy->목록을 모든 연령을 나타내는 하나의 개체로 줄이고 각 값의 개수로 다른 값을 찾고 싶기 때문에 여기서 'reduce'를 사용할 수 있습니다.
const users=[
{firstName:"john",lastName:"Biden",age:26},
{firstName:"jimmy",lastName:"cob",age:75},
{firstName:"sam",lastName:"lewis",age:50},
{firstName:"Ronald",lastName:"Mathew",age:26},
];
//using reduce array method
const output=users.reduce(function(acc,curr){
if(acc[curr.age])
//if present in array object
{
acc[curr.age]++;
}else{
//if not present in array object
acc[curr.age]=1;
}
return acc;
},{})
console.log(output);
Q3.마크가 60보다 크고 rollNumber가 15보다 큰 개체를 인쇄합니다.
let student =[
{name:"Smith",rollNumber:31,marks:80},
{name:"Jenny",rollNumber:15,marks:69},
{name:"John",rollNumber:16,marks:35},
{name:"Tiger",rollNumber:7,marks:55}
];
const details= student.filter((x)=>x.marks>60 && x.rollNumber>15);
console.log(details);
Q4.전체 학생의 총점을 출력하시오.
let student =[
{name:"Smith",rollNumber:31,marks:80},
{name:"Jenny",rollNumber:15,marks:69},
{name:"John",rollNumber:16,marks:35},
{name:"Tiger",rollNumber:7,marks:55}
];
const details = student.reduce((acc,curr)=>{
return acc+=curr.marks;
},0);
console.log(details);
배열 메서드를 연결하는 것은 map(), filter(), reduce()의 전문 분야 중 하나입니다.
Q5.연령이 30세 이상인 배열의 모든 firstName 목록
const users=[
{firstName:"john",lastName:"Biden",age:26},
{firstName:"jimmy",lastName:"Cob",age:75},
{firstName:"Sam",lastName:"Lewis",age:50},
{firstName:"Ronald",lastName:"Mathew",age:26},
];
//Chaining
const output=users.filter((x)=>x.age<30).map((x)=>x.firstName);
console.log(output);
Q6.60점 이상 받은 학생의 이름을 쓰시오.
let student =[
{name:"Smith",rollNumber:31,marks:80},
{name:"Jenny",rollNumber:15,marks:69},
{name:"John",rollNumber:16,marks:35},
{name:"Tiger",rollNumber:7,marks:55}
];
const ans=student.filter((x)=> {
return x.marks>60}).map((x)=>{return x.name});
console.log(ans);
Q7.60점 미만 학생에게 20점을 더한 후 60점 이상인 학생의 총점을 기입하십시오.
let student =[
{name:"Smith",rollNumber:31,marks:80},
{name:"Jenny",rollNumber:15,marks:69},
{name:"John",rollNumber:16,marks:35},
{name:"Tiger",rollNumber:7,marks:55}
];
const totalMarks=student.map((stu)=>{
if(stu.marks<60){
stu.marks+=20;
}
return stu;
}).filter((stu)=>stu.marks>60).reduce((acc,curr)=>acc+curr.marks,0);
console.log(totalMarks);
이 블로그가 여러분에게 도움이 되었으면 합니다. 인터뷰에 답하고 더 깊은 이해를 얻기 위해 몇 가지 중요한 질문을 다루는 적절한 예와 함께 각 어레이 방법을 설명하기 위해 최선을 다했습니다.
댓글란에 질문을 남겨주시면 최선을 다해 답변해드리겠습니다.
도움이 되셨다면 ❤️ 좋아요를 누르고 더 많은 블로그를 보려면 저를 팔로우하세요.
Reference
이 문제에 관하여(중요한 인터뷰 질문이 포함된 Map(), Filter(), reduce()), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/srishtikprasad/mapfilterreduce-with-important-interview-questions-1ae5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
var new_array = arr.map(function callback(element, index, array) {
// Return value for new_array
}[, thisArg])
const arr=[1,2,3,4,5];
function double(x)
{
return x*2;
}
const output=arr.map(double);
console.log(arr);
const output=arr.map((x)=>{
return x*2;
});
console.log(arr);
filter()
메서드는 배열의 각 요소를 가져와 이에 대한 조건문을 적용합니다. 이 조건이 true를 반환하면 요소가 출력 배열로 푸시됩니다. 조건이 false를 반환하면 요소가 출력 배열로 푸시되지 않습니다.따라서 원래 Array.filter 함수는 콜백 함수를 인수로 사용하며 해당 콜백 함수에는 세 개의 인수가 전달될 수 있습니다.
ㅏ. 현재 가치
비. 현재 값의 인덱스 [선택 사항]
씨. 배열 [선택 사항]
var new_array = arr.filter(function callback(element, index, array) {
// Return true or false
}[, thisArg])
배열에서 홀수를 필터링하고 싶다고 가정해 보겠습니다.
const arr=[1,2,3,4,5]
function isOdd(x)
{
return x%2;
}
const output=arr.filter(isOdd);
console.log(output);
우리가 취할 수 있는 또 다른 예는 배열에서 4보다 큰 숫자를 찾는 것입니다.
const arr=[1,2,3,4,5]
const output=arr.filter((x)=>{
return x>4
});
console.log(output);
줄이다
콜백 인수는 배열의 모든 항목에 대해 한 번 호출되는 함수입니다. 이 함수는 네 개의 인수를 사용하지만 종종 처음 두 개만 사용됩니다.
accumulator - 이전 반복의 반환된 값
currentValue - 배열의 현재 항목
index - 현재 항목의 인덱스 [선택 사항]
array - reduce가 호출된 원래 배열 [선택 사항]
initialValue 인수는 선택 사항입니다. 제공된 경우 콜백 함수에 대한 첫 번째 호출에서 초기 누산기 값으로 사용됩니다.
통사론
arr.reduce(callback[, initialValue])
모든 배열 요소의 합계를 찾는 예를 들어 보겠습니다.
const arr=[1,2,3,4,5];
const output=arr.reduce(function(accumulator,currentIdx){
acc+=curr;
return acc;
});
console.log(output);
이러한 배열 방법에 대한 몇 가지 중요한 질문을 시도하여 개념을 명확히 합시다.
Q1. 객체 사용자의 배열이 주어지면 fullname을 출력합니다.
const users=[
{firstName:"john",lastName:"Biden",age:26},
{firstName:"jimmy",lastName:"cob",age:75},
{firstName:"sam",lastName:"lewis",age:50},
{firstName:"Ronald",lastName:"Mathew",age:26},
];
//List of fullname
const output=users.map((x)=>{
return x.firstName+" "+x.lastName;
})
console.log(output);
Q2. 사용자 개체 배열이 주어지면 특정 연령의 사용자와 빈도를 인쇄합니다.
const users=[
{firstName:"john",lastName:"Biden",age:26},
{firstName:"jimmy",lastName:"cob",age:75},
{firstName:"sam",lastName:"lewis",age:50},
{firstName:"Ronald",lastName:"Mathew",age:26},
];
앞으로 진행하기 전에 🤔 여기서 사용할 수 있는 배열 방법을 생각해보세요!
Analogy->목록을 모든 연령을 나타내는 하나의 개체로 줄이고 각 값의 개수로 다른 값을 찾고 싶기 때문에 여기서 'reduce'를 사용할 수 있습니다.
const users=[
{firstName:"john",lastName:"Biden",age:26},
{firstName:"jimmy",lastName:"cob",age:75},
{firstName:"sam",lastName:"lewis",age:50},
{firstName:"Ronald",lastName:"Mathew",age:26},
];
//using reduce array method
const output=users.reduce(function(acc,curr){
if(acc[curr.age])
//if present in array object
{
acc[curr.age]++;
}else{
//if not present in array object
acc[curr.age]=1;
}
return acc;
},{})
console.log(output);
Q3.마크가 60보다 크고 rollNumber가 15보다 큰 개체를 인쇄합니다.
let student =[
{name:"Smith",rollNumber:31,marks:80},
{name:"Jenny",rollNumber:15,marks:69},
{name:"John",rollNumber:16,marks:35},
{name:"Tiger",rollNumber:7,marks:55}
];
const details= student.filter((x)=>x.marks>60 && x.rollNumber>15);
console.log(details);
Q4.전체 학생의 총점을 출력하시오.
let student =[
{name:"Smith",rollNumber:31,marks:80},
{name:"Jenny",rollNumber:15,marks:69},
{name:"John",rollNumber:16,marks:35},
{name:"Tiger",rollNumber:7,marks:55}
];
const details = student.reduce((acc,curr)=>{
return acc+=curr.marks;
},0);
console.log(details);
배열 메서드를 연결하는 것은 map(), filter(), reduce()의 전문 분야 중 하나입니다.
Q5.연령이 30세 이상인 배열의 모든 firstName 목록
const users=[
{firstName:"john",lastName:"Biden",age:26},
{firstName:"jimmy",lastName:"Cob",age:75},
{firstName:"Sam",lastName:"Lewis",age:50},
{firstName:"Ronald",lastName:"Mathew",age:26},
];
//Chaining
const output=users.filter((x)=>x.age<30).map((x)=>x.firstName);
console.log(output);
Q6.60점 이상 받은 학생의 이름을 쓰시오.
let student =[
{name:"Smith",rollNumber:31,marks:80},
{name:"Jenny",rollNumber:15,marks:69},
{name:"John",rollNumber:16,marks:35},
{name:"Tiger",rollNumber:7,marks:55}
];
const ans=student.filter((x)=> {
return x.marks>60}).map((x)=>{return x.name});
console.log(ans);
Q7.60점 미만 학생에게 20점을 더한 후 60점 이상인 학생의 총점을 기입하십시오.
let student =[
{name:"Smith",rollNumber:31,marks:80},
{name:"Jenny",rollNumber:15,marks:69},
{name:"John",rollNumber:16,marks:35},
{name:"Tiger",rollNumber:7,marks:55}
];
const totalMarks=student.map((stu)=>{
if(stu.marks<60){
stu.marks+=20;
}
return stu;
}).filter((stu)=>stu.marks>60).reduce((acc,curr)=>acc+curr.marks,0);
console.log(totalMarks);
이 블로그가 여러분에게 도움이 되었으면 합니다. 인터뷰에 답하고 더 깊은 이해를 얻기 위해 몇 가지 중요한 질문을 다루는 적절한 예와 함께 각 어레이 방법을 설명하기 위해 최선을 다했습니다.
댓글란에 질문을 남겨주시면 최선을 다해 답변해드리겠습니다.
도움이 되셨다면 ❤️ 좋아요를 누르고 더 많은 블로그를 보려면 저를 팔로우하세요.
Reference
이 문제에 관하여(중요한 인터뷰 질문이 포함된 Map(), Filter(), reduce()), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/srishtikprasad/mapfilterreduce-with-important-interview-questions-1ae5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
arr.reduce(callback[, initialValue])
const arr=[1,2,3,4,5];
const output=arr.reduce(function(accumulator,currentIdx){
acc+=curr;
return acc;
});
console.log(output);
const users=[
{firstName:"john",lastName:"Biden",age:26},
{firstName:"jimmy",lastName:"cob",age:75},
{firstName:"sam",lastName:"lewis",age:50},
{firstName:"Ronald",lastName:"Mathew",age:26},
];
//List of fullname
const output=users.map((x)=>{
return x.firstName+" "+x.lastName;
})
console.log(output);
const users=[
{firstName:"john",lastName:"Biden",age:26},
{firstName:"jimmy",lastName:"cob",age:75},
{firstName:"sam",lastName:"lewis",age:50},
{firstName:"Ronald",lastName:"Mathew",age:26},
];
const users=[
{firstName:"john",lastName:"Biden",age:26},
{firstName:"jimmy",lastName:"cob",age:75},
{firstName:"sam",lastName:"lewis",age:50},
{firstName:"Ronald",lastName:"Mathew",age:26},
];
//using reduce array method
const output=users.reduce(function(acc,curr){
if(acc[curr.age])
//if present in array object
{
acc[curr.age]++;
}else{
//if not present in array object
acc[curr.age]=1;
}
return acc;
},{})
console.log(output);
let student =[
{name:"Smith",rollNumber:31,marks:80},
{name:"Jenny",rollNumber:15,marks:69},
{name:"John",rollNumber:16,marks:35},
{name:"Tiger",rollNumber:7,marks:55}
];
const details= student.filter((x)=>x.marks>60 && x.rollNumber>15);
console.log(details);
let student =[
{name:"Smith",rollNumber:31,marks:80},
{name:"Jenny",rollNumber:15,marks:69},
{name:"John",rollNumber:16,marks:35},
{name:"Tiger",rollNumber:7,marks:55}
];
const details = student.reduce((acc,curr)=>{
return acc+=curr.marks;
},0);
console.log(details);
const users=[
{firstName:"john",lastName:"Biden",age:26},
{firstName:"jimmy",lastName:"Cob",age:75},
{firstName:"Sam",lastName:"Lewis",age:50},
{firstName:"Ronald",lastName:"Mathew",age:26},
];
//Chaining
const output=users.filter((x)=>x.age<30).map((x)=>x.firstName);
console.log(output);
let student =[
{name:"Smith",rollNumber:31,marks:80},
{name:"Jenny",rollNumber:15,marks:69},
{name:"John",rollNumber:16,marks:35},
{name:"Tiger",rollNumber:7,marks:55}
];
const ans=student.filter((x)=> {
return x.marks>60}).map((x)=>{return x.name});
console.log(ans);
let student =[
{name:"Smith",rollNumber:31,marks:80},
{name:"Jenny",rollNumber:15,marks:69},
{name:"John",rollNumber:16,marks:35},
{name:"Tiger",rollNumber:7,marks:55}
];
const totalMarks=student.map((stu)=>{
if(stu.marks<60){
stu.marks+=20;
}
return stu;
}).filter((stu)=>stu.marks>60).reduce((acc,curr)=>acc+curr.marks,0);
console.log(totalMarks);
Reference
이 문제에 관하여(중요한 인터뷰 질문이 포함된 Map(), Filter(), reduce()), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/srishtikprasad/mapfilterreduce-with-important-interview-questions-1ae5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)