목록전체 글 (171)
2020.코딩일지
문자열을 요소로 갖는 배열을 입력받아 가장 짧은 문자열과 가장 긴 문자열을 제거한 배열을 리턴해야 합니다. 입출력예시 더보기 가장 짧은 문자열의 길이와 가장 긴 문자열의 길이가 같은 경우는 없습니다. 가장 짧은 문자열 또는 가장 긴 문자열이 다수일 경우, 나중에 위치한 문자열을 제거합니다 //입출력예시 let output = removeExtremes(['a', 'b', 'c', 'def']); console.log(output); // --> ['a', 'b'] output = removeExtremes(['where', 'is', 'the', 'longest', 'word']); console.log(output); // --> ['where', 'the', 'word',] 👻하 function re..
문자열을 입력받아 연속된 한자리 홀수 숫자 사이에 '-'를 추가한 문자열을 리턴해야 합니다. 입출력예시 더보기 //입출력예시 let output = insertDash('454793'); console.log(output); // --> 4547-9-3 👻엌.. 홀수(1 && 1) true여야 합니다~~ 짝수(0 && 0)false면 패스. function insertDash(str) { let result = str[0]; for (let i = 1; i < str.length; i++) { if (Number(str[i - 1]) % 2 && Number(str[i]) % 2) {// 짝수(0 && 0)false로 패스. 홀수(1 && 1)true로 result += '-'; // (홀수면)resul..
문자열을 입력받아 문자열 내에 아래 중 하나가 존재하는지 여부를 리턴해야 합니다. 'a'로 시작해서 'b'로 끝나는 길이 5의 문자열 'b'로 시작해서 'a'로 끝나는 길이 5의 문자열 입출력예시 더보기 //입출력예시 let output = ABCheck('lane Borrowed'); console.log(output); // --> true 👻어..어렵다.... i=4부터 시작한다! 그래서 i=0인것과의 길이가 5가 되는것. function ABCheck(str) { if (str === undefined) { return false; } str = str.toLowerCase(); for (let i = 4; i < str.length; i++) { if ( (str[i - 4] === 'a' &&..
문자열을 입력받아 해당 문자열에 등장하는 두 칸의 공백을 모두 한 칸의 공백으로 바꾼 문자열을 리턴해야 합니다. 입출력예시 더보기 //입출력예시 let output = convertDoubleSpaceToSingle('string with double spaces'); console.log(output); // --> "string with double spaces" 👻하고싶은말있다면 #DDDDDD .... 레퍼런스 이해가안간다ㅏㅏㅏㅏㅏ function convertDoubleSpaceToSingle(str) { let result = ''; let before = ''; for (let i = 0; i < str.length; i++) { // 직전의 문자가 공백이고, 현재의 문자도 공백인 경우 // ..
2차원 배열(배열을 요소로 갖는 배열)을 입력받아 각 배열을 이용해 만든 객체를 리턴해야 합니다. 입출력예시 더보기 //입출력예시 const arr = [ ['make', 'Ford'], ['model', 'Mustang'], ['year', '1964'], ['make', 'Bill'], ]; let output = convertListToObject(arr); console.log(output) // --> { make : 'Ford' model : 'Mustang', year : '1964' } function convertListToObject(arr){ let obj = {}; for(let i=0; i0 && obj[arr[i][0]]===undefined){//배열내용이있고 && obj에 키..
문자열을 입력받아 문자열을 구성하는 각 단어의 첫 글자가 대문자인 문자열을 리턴해야 합니다. 입출력예시 더보기 //입출력예시 let output1 = letterCapitalize('hello world'); console.log(output1); // "Hello World" let output2 = letterCapitalize('javascript is sexy '); console.log(output2); // "Javascript Is Sexy " 👻단어로 조각내고 단어조각만큼 for문을 도는데,{ if (공백을 걸러내야해서 단어갯수도 세기.){ 단어에서 [0]첫글자를.toUpperCase() + 앞한자리떼고 붙이기 } } 총단어 모두 붙여서.join() return function lette..
문자열을 입력받아 순서가 뒤집힌 문자열을 리턴해야 합니다. 입출력예시 더보기 //입출력예시 let output = firstReverse('codestates'); console.log(output); // "setatsedoc" output = firstReverse('I love codestates'); console.log(output); // "setatsedoc evol I" 👻 arr.reverse() 원본배열도 변형(순서가뒤집혀서)된다. 👻 split('') 공백까지도 조각내준다. function firstReverse(str) { return str.split('').reverse().join(''); } 만약, 원본배열을 유지하고 싶다면 얕은복사[...arr]하기 See the Pen U..
im-sprint-mini-node-server app.use(express.json({ strict: false })); —>이게있어야 JSON을 알아듣는다!⭐️매우중요! (false면 배열,객체 이외에 값도 JSON으로 읽을 수있다) app.use(express.urlencoded({ extended: true, }) ); —>요즘은 거의 제이쓴이라 app.use(bodyParser.json()); 이걸 선호하고 위와같은 방식은 잘안쓰긴하는데 POST, PUT 요청의 headers에 "Content-Type”이 application/x-www-form-urlencoded 일 때 필요한 기능 extended: true, 는 인코딩 방식을 설정 true라면 qs 모듈 -> 배열및객체 모두 입력가능하고 f..
im-sprint-mini-node-server CORS미들웨어를사용하여 모든 요청에 대해 허용. `/upper`는 ""로담았고 `/lower`는 []로 담아보았다. body를 만들어서 한번에 담느냐, end()안에서 해도되는가 --> 모두OK 응답할때 `res.writeHead(200, defaultCorsHeader);` 헤더설정을 꼭 해줘야했고, `res.end(body)`를 실어서 보내야한다. 에러처리는 res.statusCode = 404; res.end(); 그래서 코드는 ... 작동은 잘하고, 이걸 곧 리팩토링 해볼것이다! const express = require("express"); const router = express.Router(); const cors = require("cors..
Refactor Express javaScript 생태계에서 인기있는 프레임워크 MERN stack. (MongoDB, Express, React, Node) 이중 Express.js는 node.js환경에서 웹서버, 또는 API서버를 제작하기 위해 사용되는 가장 있기있는 프레임워크 npm install express framework (다시확인) express로 구현한 서버가 http모듈로 작성한 서버보다 좋은점! 미들웨어 추가가 편리 2. 자체 라우터 제공한다. (분기가능) 직관적인 코드로 사용가능하다 case1. 모든 요청에 대해 url이나 메소드를 확인 할 때, //endpoint가`/`면서, 클라이언트로부터 GET요청을 받았을때 적용하는 미들웨어 app.get('/', funtion(req, re..