220113 TIL

25tutmmu·2022년 1월 13일

알고리즘 수업

for in (문자열, 객체, 배열 )

  • 객체의 속성을 반복해서 작업을 수행한다.
  • 인덱스가 문자로 반환
// 객체를 순회하며 key가 title이거나
// name일 경우 대문자로 바꿔주세요.
const obj = {
  title: 'The Title',
  name: 'Jane',
  contents: 'Nothing to say'};
  
  for (let key in obj) { 
   if( key === 'title' || key === "name" ){
     obj[key] = obj[key].toUpperCase()
   } 
 }
//결과
// {
//   title : "THE TITLE",
//   name : "JANE",
//   contents: "Nothing to say"
// }

for of (문자열, 배열)

  • 객체에서는 바로 사용 불가
  • 효율성 측면에서 조금 느린 편이다.
  • forEach 문에서 지원하지 않는 break, continue, return 구문 사용 가능
    ex)
//배열의 요소 합구하기
const arr = [11, 22, 33, 44, 55];
let sum = 0;
for(let ele of arr) {
  sum += ele
}

객체사용방법 예시

코드를 입력하세요

이 for in을 사용한 코드를 for of 구문으로 만들어 주면 이렇게 사용가능하다.

for (let [key, val] of Object.entries(obj)) {
  if( key === 'title' || key === "name" ){
    obj[key] = obj[key].toUpperCase()
  }
}

※ 처음에 entries를 사용하면 배열로 변하기때문에 다시 assign을 통해서 객체로 만들어 주어야 한다고 생각했다. 그러나 obj[key] = val.toUpperCase()를 이 과정에서 key의 값을 다시 선언해주어서 객체로 바꿀 필요가 없다.

for문 안에서 return 사용시 break와 비슷한 효과를 낼수있음

※간단하게 foreach() 배열의 메소드
arr.foreach 구문은 break나 continue 처럼 중간에 끊지 못함
그러나 false인 새로운 변수를 선언해주면 break과 비슷한 효과를 낼 수있다.

const array = ["a","b","c","d"]

let able = false;

array.forEach( (data, index) => {
  if(able === false) {
    if( index === 2 ) {
      able= true
    }
    console.log(data, index)
  
  }
  
})

*while문사용시 답이 나올때까지 반복문을 실행해야할때

백엔드 수업

express 설치

// const express = require('express')
import  express  from 'express'
const app = express()

app.get('/', function (req, res) {
  res.send('Hello World')
})
app.get('/profile', function (req, res) {
    res.send('철수 8살')
  })

app.listen(3000)

포스트맨 사용 https:// localhost:3000/profile
3000: 포트번호 바꿀수있음 (0~65535)

싱글게임
외부접속게임 외부 접속받는 프로그램은 고유한 번호가 필요 (중복안됨)
=>ex)컴퓨터에서 하나의 프로그램 실행시 3000번의 포트번호를 사용했으면 다른프로그램 실행시 3000번은 못씀

서버프로그램이 실행되고 있는 서버ex) 백엔드 서버 프론트엔드 서버 db서버

restful하다 ./boards를 이름을 맞춰주는게 좋다

app.get('/boards', function (req, res) {})
app.post('/boards', function (req, res) {})

0개의 댓글