eslint --fix . --ext .js,.vue src
'Coding' 카테고리의 다른 글
호이스팅(hoisting)이란? (0) | 2023.05.22 |
---|---|
HTTP & HTTPS ( SSL,TLS ) (2) | 2020.06.22 |
Conway Sequence es6 VanillaJS (0) | 2019.08.06 |
javascript 뒤로가기 시 경고창 표시 기능 (0) | 2019.03.07 |
최고 권한 부여 (0) | 2019.03.05 |
eslint --fix . --ext .js,.vue src
호이스팅(hoisting)이란? (0) | 2023.05.22 |
---|---|
HTTP & HTTPS ( SSL,TLS ) (2) | 2020.06.22 |
Conway Sequence es6 VanillaJS (0) | 2019.08.06 |
javascript 뒤로가기 시 경고창 표시 기능 (0) | 2019.03.07 |
최고 권한 부여 (0) | 2019.03.05 |
/*********************************************
* @name fnConwaySequenceInit
* @description Conway Sequence 초기화 처리 함수
**********************************************/
const fnConwaySequenceInit = () => {
// 첫번째 숫자가 될 변수 R 초기화
const R = 1;
// 출력할 라인번호가 될 숫자 변수 L 초기화
const L = 6;
// Conway Sequence를 만드는 함수를 담은 변수 sequence 초기화
const sequence = fnMakeSequence(R, L);
// fnMakeSequence 함수로 만들어진 sequence 배열을 문자열로 변환하기 위한 변수 output 초기화
const output = fnPrintSequence(sequence);
// 만들어진 output 콘솔에 표시!
console.log(output);
};
/*******************************************************************
* @name fnMakeSequence
* @params seed -> 첫번째 숫자
* @params iteration -> 출력할 라인 숫자
* @description 시작 숫자와 출력할 라인 숫자에 따라 Conway Sequence 생성
********************************************************************/
const fnMakeSequence = (seed, iteration) => {
// return 될 시퀀스 값을 저장 할 배열에 첫번째 숫자를 담은 seq변수 초기화
let seq = [seed];
// 0 ~ 5까지 반복하여 증가하는 반복문
for (let i = 0; i < iteration - 1; i++) {
// 출력할 라인 숫자까지 만들어질 동안의 시퀀스 값들을 저장하기 위한 배열 newSeq 초기화
let newSeq = [];
// 현재 index 숫자의 갯수 표시를 위한 변수 k 초기화
let k = 1;
// seq 배열의 index 비교를 위한 변수 j 초기화
let j = 1;
// 현재 반복이 첫번째 반복인지 검사하기위한 while문
while (j < seq.length) {
// seq 배열의 j번째 자리 숫자가 앞자리 숫자와 다르면 if문 실행
if(seq[j] != seq[j-1]) {
// newSeq 배열에 k를 push
newSeq.push(k);
// newSeq 배열에 seq[j-1]를 push
newSeq.push(seq[j-1]);
// k의 값을 1로 초기화한다.
k = 1;
}
// seq 배열의 j번째 자리 숫자가 앞자리 숫자와 같으면
else{
// k의 값에 1을 더한다.
k++;
}
// j의 값에 1을 더한다.
j++;
}
// newSeq 배열에 k를 push
newSeq.push(k);
// newSeq 배열에 seq[j-1]를 push
newSeq.push(seq[j-1]);
// 만들어진 시퀀스를 seq변수에 저장
seq = newSeq;
}
// 완성 된 Conway Sequence return
return seq;
};
/***************************************************************************************
* @name fnPrintSequence
* @params seq -> 시퀀스 값을 저장한 배열 seq
* @description fnMakeSequence 함수로 만든 시퀀스 값 담은 배열을 문자열로 변환시키기 위한 함수
****************************************************************************************/
const fnPrintSequence = (seq) => {
// 문자열로 변환된 시퀀스 값을 담을 변수 str 초기화
let str = '';
// 시퀀스 값을 담은 배열 seq의 갯수만큼 반복
for(var i = 0; i < seq.length; i++) {
// str 변수에 seq 배열 값 하나하나를 더한다.
str += seq[i] + ' ';
};
// str 값에 왼쪽/오른쪽 공백 제거 후 return
return str.trim();
};
// Conway Sequence init function 실행
fnConwaySequenceInit();
HTTP & HTTPS ( SSL,TLS ) (2) | 2020.06.22 |
---|---|
eslint 자동정렬 (0) | 2019.08.09 |
javascript 뒤로가기 시 경고창 표시 기능 (0) | 2019.03.07 |
최고 권한 부여 (0) | 2019.03.05 |
vanillaJS 부드러운 스크롤 (0) | 2019.02.14 |
/**
* @name fnBackWarning
* @description 뒤로가기 시 변경된 값이 있으면 경고창 표시 기능
*/
function fnBackWarning() {
// 브라우저 세션 히스토리와 상태 변경이 있으면
if (window.history && history.pushState) {
// window load 시
addEventListener('load', function () {
// 가짜 상태변경을 한다
history.pushState(null, null, null);
// 히스토리 엔트리가 변경될 시
addEventListener('popstate', function () {
// document에 textarea태그를 가진 모든 요소를 textarea변수에 담는다.
var textarea = document.getElementsByTagName('textarea'),
// document에 input태그를 가진 모든 요소를 input변수에 담는다.
input = document.getElementsByTagName('input'),
inputCheck = false;
// textarea 갯수만큼 반복
for (var i = 0; i < textarea.length; i++) {
// 현재 textarea요소의 data-edited속성값이 있으면
if (textarea[i].getAttribute('data-edited')) {
// inputCheck를 true로한다.
inputCheck = true;
}
}
// input 갯수만큼 반복
for (var i = 0; i < input.length; i++) {
// 현재 input요소의 data-edited속성값이 있으면
if (input[i].getAttribute('data-edited')) {
// inputCheck를 true로한다.
inputCheck = true;
}
}
// inputCheck가 true면
if (inputCheck) {
// 경고 메세지를 표시하고
var stayOnPage = confirm("변경사항을 저장 하시겠습니까?");
// 취소를 누르면
if (!stayOnPage) {
// 뒤로간다.
history.back()
}
// 확인을 누르면
else {
// 가짜 상태변경을 한다
history.pushState(null, null, null);
}
}
// inputCheck가 false면
else {
// 뒤로간다.
history.back()
}
});
});
}
}
fnBackWarning();
eslint 자동정렬 (0) | 2019.08.09 |
---|---|
Conway Sequence es6 VanillaJS (0) | 2019.08.06 |
최고 권한 부여 (0) | 2019.03.05 |
vanillaJS 부드러운 스크롤 (0) | 2019.02.14 |
vue.js - v-model의 한글 사용 문제를 v-on을 사용한 해결법 (0) | 2019.01.18 |