-뒤의 4자리를 "*"로 바꿔서 리턴해주세요.
// ex)핸드폰 번호가 담긴 문자열 phone이 주어질 때,
// 뒤의 4자리를 "*"로 바꿔서 리턴해주세요.
function solution(phone) {
let arr = phone.split('')
return arr.fill("*",3).join('')
}
console.log("결과", solution('01012345678')); // "010********"
split() :문자열을 배열로 바꿔준다.
phone.split('')
[ '0', '1', '0', '1', '2', '3', '4', '5', '6', '7', '8' ]
fill(,3) : 3번인덱스부터 끝까지 로 채운다.
[ '0', '1', '0', '*', '*', '*', '*', '*', '*', '*', '*' ]
join('') : 배열을 문자열로 바꿔준다.
"010********"
entries() : [key,value] 쌍의 배열을 반환
const score = {
easy: 234,
normal: 759,
hard: 677,
nightmare: 46
};
const arr = Object.entries(score);
console.log(arr);
// [
// [ 'easy', 234 ],
// [ 'normal', 759 ],
// [ 'hard', 677 ],
// [ 'nightmare', 46 ]
// ]
findIndex() = 값이 있으면 인덱스를 반환
startswith() = 문자열이 검색 문자열로 시작하면 true 또는 false. 반환한다.
const arr = ['김세준', '백선호', '조아라', '홍재훈'];
function callBackFn(element) {
if(element.startswith('조')) {
return element
}
}
const result = arr.findIndex(callBackFn);
console.log('결과', result); // 2
foreach() : Array 객체에서만 사용가능한 매소드
foreach는 callback함수와 함께 자주 쓰이며 반복 가능
let fruits = ["사과", "바나나"]
fruits.forEach(function (item, index, array) {
array[index] = "맛있는" + item;
})
console.log(fruits)
push() : 배열 맨 뒤에 데이터 추가텍스트
unshift() : 배열 맨 앞에 데이터 추가
pop() : 배열 맨 뒤의 데이터 삭제
shift() : 배열 맨 앞의 데이터 삭제
indexOf() : 데이터의 index값 반환
includes() : 데이터의 존재 여부 반환 -> true/false
더 많은 배열 매소드 보기 https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array
console.log("철수는 사과를 " + apple + '개, '+ '바나나를 ' + banana + "개 가지고 있습니다.")
//철수는 사과를 3개, 바나나를 2개 가지고 있습니다.
console.log(`철수는 사과를 ${apple}개, 바나나를 ${banana}개 가지고 있습니다.`)
//철수는 사과를 3개, 바나나를 2개 가지고 있습니다.
`백틱을 이용해 감싸주면 +를 쓰지않고 편하게 ${}을 이용해 변수를 받아올 수 있다.
또 백틱이용시에는 줄바꿈도 가능하다.
이런 식으로 사용가능하다. ex)

function getCreatedAt() {
const aaa = new Date()
const yyyy = aaa.getFullYear()
const mm = aaa.getMonth() + 1
const dd = aaa.getDate()
return `${yyyy}-${mm}-${dd}`
}
yarn
{
"name": "02-06-welcomtemplate-creat-user-api",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"type": "module",
"scripts": {
"dev" : "node index.js"
}
}
yarn init
yarn dev
// 1. email이 정상인지 확인 2가지 이상 @포함여부 ,이메일 존재하는지
// 2. 이메일이 정상이니까 가입환영 템플릿을 만들기
// 3. 이메일에 가입 환영 템플릿 전송 <-콘솔로
// 4. 파사드 패턴 활용하기
index.js
import{checkValidationEmail, createTemplate, sendTemplate } from './email.js'
function createUser(user) {
const isValid = checkValidationEmail(user.email)
if (isValid === true) {
const template = createTemplate(user)
const send = sendTemplate(template)
return send
}
}
const myuser = {
name: '철수',
age: 8,
school: "다람쥐초등학교",
email: "a@com"
}
createUser(myuser)
email.js
import{ getCreatedAt } from './utils.js'
export function checkValidationEmail(email) {
if(email !==undefined || "") {
if(email.includes("@")=== false){
console.log("에러!! 올바른 이메일 형식이 아닙니다.")
return false
} else {
return true
}
}else{
console.log("이메일이 존재하지 않습니다.")
return false
}
}
export function createTemplate({name, age, school, email}) {
const createdAt = getCreatedAt()
return `
<html>
<body>
<h1>${name}님 가입을 환영합니다!!</h1>
<hr />
<div>이름: ${name}</div>
<div>이메일: ${email}</div>
<div>나이: ${age}살</div>
<div>학교: ${school}</div>
<div>가입일: ${createdAt}</div>
</body>
</html>`
}
export function sendTemplate(template) {
console.log(`${template}을 전송을 완료하였습니다.`)
}
utils.js
export function getCreatedAt() {
const aaa = new Date()
const yyyy = aaa.getFullYear()
const mm = aaa.getMonth() + 1
const dd = aaa.getDate()
return `${yyyy}-${mm}-${dd}`
}