JSON이란?
JSON이란, 자바스크립트 오브젝트 노테이션의 약자
{ } 중괄호 쓴다면 뭘 쓰겠다는 뜻인가?
콤마 원소, 콤마 원소가 들어간다.
리스트랑 동일하다
{ ㅇ, ㅇ, ㅇ{
key:값
리스트에서는 값만 들어간다.
리스트명, 인덱스 위치를 알아둬야 애가 빠져 나와.
키를 불러
key는 분류기호라고 보면 된다.
조를 부르면 뒤에 속해있던 조 1,2,3,4 의 값들이 한꺼번에 같이 나오겠다는 뜻
값을 부르면 키가 딸려나오진 않는다.
데이터에이스에서 중요하다.
filter()
특정 조건을 만족하는 배열의 요소만을 찾아서 새로운 배열로 반환합니다.
배열을 다룰 때 많이 사용하는 내장 함수이다.
특정 조건을 만족하는 데이터만 추출해내는 프로그램을 구현해야하는 경우가 많음.
이때, filter() 함수 기능을 잘 사용하면 코드를 매우 효율적으로 작성할 수 있다.
let persons = [{
name: "유재석",
point: 78,
city: "서울"
},
{
name:"김종국",
point: 92,
city: "서울"
},
{
name: "양세찬",
point: 76,
city:"제주"
},
{
name: "하하",
point: 81,
city:"서울"
}
];
let pass = persons.filter(function (person) {
return person.point >= 80;
});
console.log(pass);
const students = [
{name: 'minji', age: 25, math: 85, english: 87},
{name: 'sungyeon', age: 26, math: 95, english: 97},
{name: 'jimin', age: 28, math: 76, english: 84},
{name: 'subsu', age: 24, math: 84, english: 73},
{name: 'dasom', age: 31, math: 54, english: 67},
{name: 'yunsu', age: 29, math: 34, english: 100},
];
const mathUpper80 = students.filter(student => student.math > 80);
const mathUpper90AndEnglishUpper70 = students
.filter(student => student.math > 90 && student.english > 70);
console.log('mathUpper:', mathUpper80);
console.log('mathUpper90AndEnglishUpper70:', mathUpper90AndEnglishUpper70);
.key 값 활용하기
const user = {}; //user안에 user.name 을 통해서 정보가 들어간다
user.name = 'minji';
user.age = 25;
console.log("유저1: " ,user);
const user2 = { name: 'kyeongrok', age: 31 }; //중괄호 안에 한줄로 정보 입력 가능
console.log(user2);
console.log('user2:', user2);
console.log('user2.name:', user2.name);
console.log('user2.age:', user2.age);
user2.job = 'developer';
user2.nation = 'korea';
console.log(user2);
const memberName = 'age';
console.log(user2[memberName]);
유저1: { name: 'minji', age: 25 }
{ name: 'kyeongrok', age: 31 }
user2: { name: 'kyeongrok', age: 31 }
user2.name: kyeongrok
user2.age: 31
{ name: 'kyeongrok', age: 31, job: 'developer', nation: 'korea' }
31
sort() 활용법( fucntion 과 함께 활용 )
let b = [40,7,2,9,10];
// let a = b.sort(); //정렬
b.sort(function(a, b){return a - b}); // 제대로 정렬이 됨
console.log(b);
// let c = a.reverse(); //역으로 보냄
// console.log(a);
map() 활용
let userList = [{
firstName: "재석",
lastName: "유",
email: "yu@gmail.com"
},
{
firstName: "종국",
lastName: "김",
email: "kim@gmail.com"
},
{
firstName: "세찬",
lastName: "양",
email: "yung@gmail.com"
},
{
firstName: "석진",
lastName: "지",
email: "ji@gmail.com"
}
];
let userList2 = userList.map(function (user) {
return {
fullName: user.lastName + user.firstName,
firstName: user.firstName,
lastName: user.lastName,
email: user.email
}
}
);
console.log(userList2);
[
{
fullName: '유재석',
firstName: '재석',
lastName: '유',
email: 'yu@gmail.com'
},
{
fullName: '김종국',
firstName: '종국',
lastName: '김',
email: 'kim@gmail.com'
},
{
fullName: '양세찬',
firstName: '세찬',
lastName: '양',
email: 'yung@gmail.com'
},
{
fullName: '지석진',
firstName: '석진',
lastName: '지',
email: 'ji@gmail.com'
}
]
const listEmployee = [
{ name: 'minji', age: 25, salary: 4000},
{name: 'mzznzz', age: 26, salary: 5500},
{name: 'mizzi', age: 27, salary: 6000},
];
//연봉을 10%씩 올려본다.
const raisedSalaryList = listEmployee.map(employee => (employee.salary * 1.1));
raisedSalaryList.forEach(salary => console.log('salary: %d', salary));
연봉을 10%씩 올리는 map 활용
class 상속 61페이지 참고
ㄴthis - 자기 자신을 가리킨다.
재귀함수란?
특정 조건이 만족할 때까지 실행한 결과를 다시 한 번 자신한테 넘겨주면서 자신을 다시 호출하는 함수이다.
끝내는 조건을 잘 지정해주지 않으면 멈추지 않고 계속 실행되기 때문에 여러번 연습한 후에 사용하는 게 좋다.
//재귀함수 1~n까지 더하기
//for 1~n까지 더하기
var sum = 0;
for (let i = 0; i < 11; i++) {
sum += i;
};
console.log(sum); //55
일단 for문으로 1~n 누적합의 결과를 본 후 재귀함수를 활용
//재귀함수 1~n까지 더하기
//시작값, 끝나는 값, 연산 결과 저장값 3개의 파라미터를 갖는 sumNumber 함수선언
const sumNumber = (start, end, accumulator) => {
//첫번째 start가 두번째 파라미터end보다 클 경우 accmulator를 리턴하고,
if (start > end) return accumulator;
// 그렇지 않을 경우 sumNumber(start + 1, end, accumulator + start) 누적 시킨다. 를 리턴한다.
return sumNumber(start + 1, end, accumulator + start);
};
console.log('result:', sumNumber(1, 10, 0)); //55
start가 end보다 클 때까지 return하여서 계속 자기 자신에게 호출하면서
끝내는 조건까지 계속해서 실행한다.
filter, map, reduce 함수를 동시에 쓰는 법
//filter, map, reduce 함수 예제
//students 배열에 대해 3개의 json객체를 담고 있다.
const students = [
{ name: 'minji', age: 31, score: 85},
{ name: 'jihyun', age: 31, score: 95},
{ name: 'minsup', age: 35, score: 76},
];
//점수가 80점 이상인 학생 필터링하기
//filter함수는 students.score > 80 , score 80을 초과하는 경우만 필터링하여 넘김
//map함수는 score값만 가져와 새로운 배열을 리턴 [85, 95] 형태의 배열
//reduce 함수는 배열 원소의 합을 리턴 upper80StudentsSum에 초기화 된다.
const upper80StudentsSum = students
.filter(students => students.score > 80)
.map(student => student.score)
.reduce((a,b) => (a + b));
console.log('sum: ', upper80StudentsSum); //180
주제는 잘 모르겠지만 코드 작성한 것
초보자를 위한 49페이지
JSON이란 부분
const user = {}; //user안에 user.name 을 통해서 정보가 들어간다
user.name = 'minji';
user.age = 25;
console.log("유저1: " ,user);
const user2 = { name: 'kyeongrok', age: 31 }; //중괄호 안에 한줄로 정보 입력 가능
console.log(user2);
console.log('user2:', user2);
console.log('user2.name:', user2.name);
console.log('user2.age:', user2.age);
user2.job = 'developer';
user2.nation = 'korea';
console.log(user2);
const memberName = 'age';
console.log(user2[memberName]);
107페이지인지 1 07번인지 몰겟음
화살표함수에 대한 구문
const printHello = () =>
console.log('Hello'); // 중괄호를 쓰지 않아도 됨
const printHello2 = () => 'hello2'; // hello를 리턴한다.
const printMessage = message => console.log(message);
const plus = (a, b) => a + b;
const minus = (a, b) => a - b;
printHello();
console.log(printHello2());
printMessage('message');
console.log('plus : %d', plus(10, 20));
console.log('minus : %d', minus(10, 20));
72페이지부터 147페이지까지 읽어 와달라 ( 교수님 바램 )