객체 설명
20번 문제
function countAllCharacters(str) {
// 객체는 정보를 저장하기에 좋은 자료형
// str에 어떤 영어가 오던, 그 영어가 몇 번 나올지 작성할 것입니다.
const countObj = {} // --> {b: 1, a: 3, n: 2}
for (let i = 0; i < str.length; i += 1) {
// str의 모든 문자를 확인할 수 있다.
const char = str[i];
countObj[char] = countObj[char] + 1;
if (countObj[char] === undefined) {
countObj[char] = 0;
countObj[char] = countObj[char] + 1;
} else {
countObj[char] = countObj[char] + 1;
}
}
return countObj; // --> {b: 1, a: 3, n: 2}
}
21번 문제
function mostFrequentCharacter(str) {
// TODO: 여기에 코드를 작성합니다.
let mostChar = '';
let mostCount = 0;
let countObj = {};
for (let i = 0; i < str.length; i += 1) {
// ' '.length 띄어쓰기
// ''.length 빈 문자열
// str의 모든 문자를 확인할 수 있다.
// 문자열의 각 문자가 몇개인지 기록
const char = str[i];
if (char === ' ') {
// 띄어쓰기인지 확인합니다. // 아무것도 하지 않는다.
continue;
}
// 해당 문자를 만났을 때, 해당 문자 count + 1 한다.
if (countObj[char] === undefined) {
// 객체 문법 -> 바나나 코드 undefined + 1
countObj[char] = 0;
countObj[char] = countObj[char] + 1;
} else {
countObj[char] = countObj[char] + 1;
}
// 빈도를 확인 (얼마나 더 자주 나왔는지 확인)
if (countObj[char] > mostCount) {
mostCount = countObj[char];
mostChar = char;
}
}
return mostChar;
}
for ~ of
function countAllCharacters(str) {
객체는 정보를 저장하기에 좋은 자료형
// // str에 어떤 영어가 오던, 그 영어가 몇 번 나올지 작성할 것입니다.
// const countObj = {} // --> {b: 1, a: 3, n: 2}
// for (let char of str) {
// // str의 모든 문자를 확인할 수 있다.
// // const char = str[i];
// // countObj[char] = countObj[char] + 1;
// if (countObj[char] === undefined) {
// countObj[char] = 0;
// countObj[char] = countObj[char] + 1;
// } else {
// countObj[char] = countObj[char] + 1;
// }
// }
// return countObj; // --> {b: 1, a: 3, n: 2}
// }
****for in sample
const obj = { a: 1, b: 2, c: 3 };
let count = 0;
for (const key in obj) {
// 객체 속성에는 순서가 없습니다.
// 모든 속성을 확인하고 작업을 할 수는 있지만,
// 모든 속성을 순서대로 확인하지는 않습니다.
// let i, i < 1, i ++
// 정해진 순서대로 작동하게 됩니다.
console.log('key: 객체의 이름, 키값, 키 - string:', key); // a, b, c
console.log('obj[key]: 객체의 이름, 키값, 키:', obj[key]); // obj['a'], obj['b'], obj['c']
console.log('obj: 객체 그 자체', obj)
count = count + 1;
console.log(count);
}
let sum = 0;
for (const key in obj) {
sum = sum + obj[key];
}
console.log(sum);
// splice: 여기서부터, 몇 개 지우고, 이거 채운다
// mutator method, mutating method
let foods = [ "🍎" , "🥖" , "🧀" , "🍳" , "💧"]
// 0번째 index부터 1개 지우고 '🌟' 넣는다.
foods.splice(0, 1, '🌟')
foods // ['🌟', '🥖', '🧀', '🍳', '💧']
foods = [ "🍎" , "🥖" , "🧀" , "🍳" , "💧"]
// 0번째 index부터 1개 지우고 '🌟', '🌟', '🌟' 넣는다.
foods.splice(0, 1, '🌟', '🌟', '🌟')
foods // ['🌟', '🌟', '🌟', '🥖', '🧀', '🍳', '💧']
foods = [ "🍎" , "🥖" , "🧀" , "🍳" , "💧"]
// 0번째 index부터 3개 지우고 '🌟', '🌟', '🌟' 넣는다.
foods.splice(0, 3, '🌟', '🌟', '🌟')
foods // ['🌟', '🌟', '🌟', '🍳', '💧']
foods = [ "🍎" , "🥖" , "🧀" , "🍳" , "💧"]
// 0번째 index부터 3개 지운다. 끝.
foods.splice(0, 3)
foods // ['🍳', '💧']
foods = [ "🍎" , "🥖" , "🧀" , "🍳" , "💧"]
// 3번째 index부터 1개 지우고 '🌟' 넣는다.
// => 3번째 index를 '🌟' 로 바꾼다.
foods.splice(3, 1, '🌟')
foods // ['🍎', '🥖', '🧀', '🌟', '💧']
Obeject
let order = {
name: '불고기피자',
topping: '불고기',
dough: '치즈크러스트',
quantity: 2
}
Quiz
let pokemon = ['이상해씨', '파이리', '꼬부기', '피카츄', '아구몬'];
pokemon.pop()
console.log(pokemon)
console.log(typeof pokemon) // object
console.log(Array.isArray(pokemon)) // true
// 반복문에 조건문 하나 들어가는 유형
let arr = [1, 2, 3, 4, 5]
function getGreatestElement(arr) {
// 변수 greatest를 선언하고, 0번째 요소를 할당한다.
// let greatest = 0
let greatest = arr[0];
// 1번째 요소부터, 가장 마지막 요소까지 순회하는 반복문을 만든다.
for (let i = 1; i < arr.length; i += 1) {
// 만약, arr[i]가 greatest보다 크면, 변수 greatest에 arr[i]의 값을 할당한다.
if (arr[i] > greatest) {
greatest = arr[i]
}
}
return greatest
// 반복문이 끝나면 변수 greatest를 리턴한다.
}