-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patharray_func.js
132 lines (112 loc) · 6.63 KB
/
array_func.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
const scores = [
{name: '지영', score: 80, mbti: 'INFP', addr: "지구 어딘가 ", contact: "010-1234-1234"},
{name: '효원', score: 50, mbti: 'INFP', addr: "지구 어딘가 ", contact: "010-1234-1234"},
{name: '정기', score: 60, mbti: 'INFP', addr: "지구 어딘가 ", contact: "010-1234-1234"},
{name: '대신', score: 30, mbti: 'INFP', addr: "지구 어딘가 ", contact: "010-1234-1234"},
{name: '택환', score: 94, mbti: 'INFP', addr: "지구 어딘가 ", contact: "010-1234-1234"},
{name: '호승', score: 30, mbti: 'INFP', addr: "지구 어딘가 ", contact: "010-1234-1234"},
{name: '희선', score: 23, mbti: 'INFP', addr: "지구 어딘가 ", contact: "010-1234-1234"},
{name: '설인', score: 56, mbti: 'INFP', addr: "지구 어딘가 ", contact: "010-1234-1234"},
]
// 2. 배열에서 40점 미만 점수받은 사람 구하기
// for문의 경우에는 전부 이름으로 된 배열을 반환하는 한편, filter를 사용하면 배열 내 객체들로 이루어진 배열을 반환한다.
// for문을 사용했을 때처럼 이름으로만 이루어진 배열로 반환하도록 수정한다
// const yulramen = []
// for(let i = 0; i < scores.length; i++) {
// if(scores[i].score < 40){
// yulramen.push(scores[i].name)
// }
// }
// console.log(yulramen)
// const yulramen = scores.filter((score) => {
// if (score.score < 40) {
// return true
// } else {
// return false
// }
// })
// const yulramen = scores.filter((score) => {
// const result = score.score < 40 ? true : false
// return result
// })
// const yulramen = scores.filter((score) => {
// return score.score < 40 ? true : false
// })
// const yulramen = scores.filter((score) => {
// return score.score < 40
// })
const yulramen = scores.filter(변수 => 변수.score < 40)
.map(다른변수 => 다른변수.name)
console.log(yulramen)
// 3. 가장 공부를 잘했던 “지영”의 점수 확인
// for문의 경우 "지영"의 score만 변수에 할당되는 한편, find를 사용하면 "지영"의 객체를 반환한다.
// 이 때 지영의 score만 할당되도록 수정한다
// let 지영점수 = null
// for(let i = 0; i < scores.length; i++){
// if(scores[i].name === '지영'){
// 지영점수 = scores[i].score
// }
// }
// console.log(지영점수)
const 지영점수 = scores.find(score => score.name === '지영')
console.log(지영점수.score)
// 4. 아래처럼 영화 제목 게시판의 객체로 이루어진 배열과 영화 제목을 작성한 사용자로 이루어진 객체가 있다.
// movies 의 user_id 는 users 의 id 를 참조 한다
const movies = [
{id: 1, movie_title: "Misérables, Les", hit_count: 23, user_id: 1, created_at: "2022-08-11 00:40:32"},
{id: 3, movie_title: "Captain Ron", hit_count: 1, user_id: 1, created_at: "2022-08-14 18:09:47"},
{id: 4, movie_title: "Siberia", hit_count: 37, user_id: 9, created_at: "2022-02-08 02:44:29"},
{id: 5, movie_title: "Girl, The", hit_count: 82, user_id: 6, created_at: "2022-08-29 00:02:21"},
{id: 6, movie_title: "44 Minutes: The North Hollywood Shoot-Out", hit_count: 2, user_id: 4, created_at: "2022-12-06 20:33:12"},
{id: 7, movie_title: "C'mon Man", hit_count: 62, user_id: 2, created_at: "2022-08-18 16:43:05"},
{id: 8, movie_title: "Jim Jefferies: Alcoholocaust", hit_count: 4, user_id: 8, created_at: "2022-07-05 16:49:03"},
{id: 9, movie_title: "Grand Budapest Hotel, The", hit_count: 35, user_id: 9, created_at: "2022-01-10 08:22:27"},
{id: 10, movie_title: "Ju-on: The Curse 2", hit_count: 64, user_id: 7, created_at: "2022-10-18 21:59:19"},
{id: 11, movie_title: "Looney Tunes: Back in Action", hit_count: 17, user_id: 8, created_at: "2022-10-26 06:56:30"},
{id: 12, movie_title: "Undertaker and His Pals, The", hit_count: 91, user_id: 6, created_at: "2022-02-22 11:23:11"},
{id: 13, movie_title: "BlinkyTM", hit_count: 4, user_id: 5, created_at: "2022-01-08 21:02:09"},
{id: 14, movie_title: "Alien Predator (Mutant II) (Falling, The)", hit_count: 47, user_id: 2, created_at: "2022-02-28 15:55:13"},
{id: 15, movie_title: "Lorenzo's Oil", hit_count: 26, user_id: 6, created_at: "2022-01-21 02:46:27"},
{id: 16, movie_title: "Beyond Re-Animator", hit_count: 88, user_id: 5, created_at: "2022-04-26 13:44:52"},
{id: 17, movie_title: "Mississippi Burning", hit_count: 64, user_id: 8, created_at: "2022-11-14 05:23:58"},
{id: 18, movie_title: "Last Circus, The (Balada triste de trompeta) (Sad Trumpet Ballad, A)", hit_count: 55, user_id: 1, created_at: "2022-03-24 06:27:21"},
{id: 19, movie_title: "Power and Terror: Noam Chomsky in Our Times", hit_count: 85, user_id: 3, created_at: "2022-04-30 19:43:43"},
{id: 20, movie_title: "Grumpy Cat's Worst Christmas Ever", hit_count: 58, user_id: 9, created_at: "2022-12-13 00:46:27"}
]
const users = [
{id: 1,name: "Trix Hannaby", email: "[email protected]"},
{id: 2,name: "Mead Lantiff", email: "[email protected]"},
{id: 3,name: "Margette Scaplehorn", email: "[email protected]"},
{id: 4,name: "Kimmy Hulks", email: "[email protected]"},
{id: 5,name: "Margot Haward", email: "[email protected]"},
{id: 6,name: "Meredith Spendlove", email: "[email protected]"},
{id: 7,name: "Tuck Francis", email: "[email protected]"},
{id: 8,name: "Duke Davsley", email: "[email protected]"},
{id: 9,name: "Jimmy Weld", email: "[email protected]"},
{id: 10,name: "Kaylee Jakoubec", email: "[email protected]"}
]
// 4-1. 모든 movies를 반환하는 개발을 한다. 단, movie를 작성한 user의 이름을 포함해라
// movies를 전체 반환하면서 각 영화별 users의 user name이 나오게 하쇼
// const 빈배열 = []
// for(let i = 0; i < movies.length; i++){
// if(movies[i].user_id === users.id){
// return 빈배열.push({
// ...movie[i],
// name: users.name
// })
// }
// }
// console.log(빈배열)
const 빈배열 = movies.map(movie => ({
...movie,
name: users.find(user => user.id === movie.user_id).name
}))
console.log(빈배열)
// 4-2. id가 1번에 해당하는 user가 작성한 영화 movie_title로만 이루어진 배열을 가져온다.
const 에이씨 = movies.filter(movie => movie.user_id === 1)
.map(moving => moving.movie_title)
console.log(에이씨)
// 4-3. Looney Tunes: Back in Action라는 movie_title을 가진 게시물의 작성자의 이메일을 가져온다.
const 루니툰 = movies.find(movie => movie.movie_title === "Looney Tunes: Back in Action").user_id
const 루니툰이메일 = users.find(user => user.id === 루니툰).email
console.log(루니툰이메일)