# 문제에 사용될 배열
```javascript=
let names = [
"Steven Paul Jobs",
"Bill Gates",
"Mark Elliot Zuckerberg",
"Elon Musk",
"Jeff Bezos",
"Warren Edward Buffett",
"Larry Page",
"Larry Ellison",
"Tim Cook",
"Lloyd Blankfein",
];
```
# map 문제
```javascript=
// 모든 이름을 대문자로 바꾸어서 출력하시오.
let upperNames = names.map(name => name.toUpperCase());
console.log(upperNames);
// 성을 제외한 이름만 출력하시오. (예-[“Steven”,“Bill”,“Mark”,“Elon”…])
let firstName = names.map(firstName => firstName.split(" ")[0]);
console.log(firstName);
// 이름의 이니셜만 출력하시오. (예-[“SPU”,“BG”,“MEZ”,“EM”…])
let initials = names.map(initial =>
initial
.split(" ") // 띄어쓰기로 단어 나누기
.map(word => word.charAt(0).toUpperCase()) // 각 단어의 첫 글자만 가져오기
.join("") // 다시 문자열로 합치기
);
console.log(initials);
```
# filter 문제
```javascript=
// 이름에 a를 포함한 사람들을 출력하시오.
let namesFilter = names.filter(item => item.includes('a'));
console.log(namesFilter)
// 이름에 같은 글자가 연속해서 들어간 사람을 출력하시오. (예-tt,ff,ll 이런 글자들)
let repeatedWords = names.filter(word => {
return [...word].some((char, index, arr) => index > 0 && char === arr[index - 1]);
});
console.log(repeatedWords);
```
# some 문제
```javascript=
// 전체 이름의 길이가 20자 이상인 사람이 있는가?
let twentyOvername = names.some(item =>{
return [...item].length >= 20
})
console.log(twentyOvername)
// 성을 제외한 이름에 p를 포함한 사람이 있는가?(대소문자 상관 no)
let includePExceptFirstName = names.some(item => {
let parts = item.split(" "); // 띄어쓰기로 단어 나누기
let firstNameRemoved = parts.slice(1); // 성을 제외한 나머지 이름 부분
return firstNameRemoved.some(name => name.toLowerCase().includes("p")); // p 포함 여부 체크
})
console.log(includePExceptFirstName);
```
# every 문제
```javascript=
// 모두의 전체 이름의 길이가 20자 이상인가?
let everyTwentyOvername = names.every(item =>{
return [...item].length >= 20
})
console.log(everyTwentyOvername)
// 모두의 이름에 a 가 포함되어 있는가?
let everyIncludePExceptFirstName = names.every(item => {
let parts = item.split(" "); // 띄어쓰기로 단어 나누기
let firstNameRemoved = parts.slice(1); // 성을 제외한 나머지 이름 부분
return firstNameRemoved.some(name => name.toLowerCase().includes("a")); // a 포함 여부 체크
})
console.log(everyIncludePExceptFirstName);
```
# find 문제
```javascript=
// 전체 이름의 길이가 20자 이상인 사람을 찾으시오.
let findTwentyOvername = names.find(item =>{
return [...item].length >= 20
})
console.log(findTwentyOvername)
// 미들네임이 포함되어있는 첫번째 사람을 찾으시오.(예-Steven Paul Jobs)
let hasMiddleName = names.find(name => name.split(" ").length === 3);
console.log(hasMiddleName);
```
# findIndex 문제
```javascript=
// 전체 이름의 길이가 20자 이상인 사람의 인덱스 번호를 찾으시오.
let findIndexTwentyOvername = names.findIndex(item => item.length >= 20);
console.log(findIndexTwentyOvername);
// 미들네임이 포함되어있는 사람의 인덱스 번호를 찾으시오.
let hasMiddleNameIndex = names.findIndex(name => name.split(" ").length === 3);
console.log(hasMiddleNameIndex);
```