프로젝트,알고리즘 풀이 등을 진행하면서 사용한 함수들을 복습하고,
다시 꺼내볼 수 있도록 정리해두는 페이지입니다.
//이번 프로젝트에서 쓰지는 않았지만..검색해본 김에 정리!(인용)
string.indexOf(searchvalue, position)
/*indexOf 함수는, 문자열(string)에서 특정 문자열(searchvalue)을 찾고,
검색된 문자열이 '첫번째'로 나타나는 위치 index를 리턴합니다.
파라미터
searchvalue : 필수 입력값, 찾을 문자열
position : optional, 기본값은 0, string에서 searchvalue를 찾기 시작할 위치
찾는 문자열이 없으면 -1을 리턴합니다.
문자열을 찾을 때 대소문자를 구분합니다.
출처: https://hianna.tistory.com/379 [어제 오늘 내일]
newarr.push('N');
//push()는 배열의 맨 뒤에 값을 추가한다.
newarr.unshift('N')
//unshift()는 배열의 맨 앞에 값을 추가한다.
var number = [1,2,3,4,5,6,7,8,9,0,'a','b','c','d','e','f']
var newarr = []
for (var i=0; i<5; i++) {
newarr.push((number[Math.floor(Math.random()*15)]))
}
/*[9,6,3,"d",4]
우리가 원하는 #079de3 과 같은 연속된 숫자코드가 아닌, 쉼표로 구분되며 각 숫자와 문자형태로
나타나는 배열의 요소들이 출력된다*/
return "#" + newarr.join("");
/*join은 배열을 구성하는 각각의 요소들을, 하나의 문자열로 변환한다.
위 결과값이 #963d4로 출력된다.
""안에는 구분자가 들어간다. join(" ")(공백)을 입력할 경우 #9 6 3 d 4로 출력된다.
0~1사이의 소숫점을 포함한 난수를 무작위로 생성한다. 랜덤하게 숫자를 만들고 싶다면 Math.random()을 사용하면된다. 꼭 숫자가 아니더라도 잘 활용하면 랜덤한 결과를 출력할 때 활용할 수 있다.
랜덤하게 생성할 숫자의 범위를 정해주어야한다.
최댓값 : Math.random()*최댓값
//난수의 범위 시작이 0이므로 0*n=0
// 최대값인 1에만 원하는 최대 범위를 곱하면 된다. 1*n=n이므로, 범위는 0~n
최솟값 : ( Math.random() * ( 최대값 - 최소값 ) ) + 최소값
/*1<x<10의 범위를 만들어주기 위해서는 +1을 해주어야 한다.
그러나 최댓값의 범위에도 +1이 되기 때문에, 최댓값에서 최솟값을 뺀 만큼만 더해준다.
다만, 이 함수는 랜덤한 '정수'를 출력하지는 않는다.
여전히 해당 범위의 소수점을 포함한 난수를 무작위로 생성한다.
따라서 정수의 결과를 얻고 싶다면 다른 함수를 사용해야 한다.
Math.floor() : 소수점 이하를 버림
Math.ceil() : 소수점 이하를 올림
Math.round() : 소수점 이하를 반올림
for (var i = 0; i < 5; i++) {
newarr.push(number[Math.floor(Math.random() * 15)]);
}
/*
Math.floor() : 소수점 이하를 버림
Math.ceil() : 소수점 이하를 올림
Math.round() : 소수점 이하를 반올림
/*Math.random()*15 : 0~15까지의 랜덤한 난수를 출력
Math.floor(Math.random()*15 : 소숫점 이하를 버림해, 0~15까지의 랜덤한 정수를 출력
number[Math.floor(Math.random()*15] : 랜덤한 정수에 해당하는 number배열의 인덱스의 값을 출력
예) number[1] : 2
newarr.push(number[Math.floor(Math.random() * 15)]);:newarr 배열의 맨 뒤에 해당 값을 추가
Number()
parseFloat()
문자열 혹은 문자열을 값으로 하는 변수를 숫자로 변환
반대로 숫자를 문자열로 변환할 때
string()
////
function getno() {
// let getnolist = [];
const getnolist = document.getElementById("writeno").value;
if (getnolist.length != 3) {
alert("3자리 숫자를 입력해주세요!");
} else {
// for (i = 0; i < 3; i++) {
let slicenolist = [1, 2, 3];
let sliceno0 = getnolist.substr(0, 1);
slicenolist.splice(0, 1, sliceno0);
let sliceno1 = getnolist.substr(1, 1);
slicenolist.splice(1, 1, sliceno1);
let sliceno2 = getnolist.substr(2, 1);
slicenolist.splice(2, 1, sliceno2);
let tonum0 = slicenolist.splice(0, 1, parseFloat(slicenolist[0]));
let tonum1 = slicenolist.splice(1, 1, parseFloat(slicenolist[1]));
let tonum2 = slicenolist.splice(2, 1, parseFloat(slicenolist[2]));
console.log(slicenolist);
}
}
}
//이전결과: ["4", "6", "4"]
//결과 : [4, 6, 4]
https://sesok808.tistory.com/600
split("구분자")
substr(시작인덱스,길이)
substring(시작인덱스,종료인덱스)
예)*/
var a = "1,2,3"
var b = "1234567"
var array = a.split(",") //array = [1,2,3]
var array = b.substr(2,3) //array = [345]
var array = b.substring(2,5) //array = [3456]
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/match
match() 메서드는 문자열이 정규식과 매치되는 부분을 검색한다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Regular_Expressions
: 문자열에 나타나는 특정 문자 조합과 대응시키기 위해 사용되는 패턴.
match 메소드와 함께 쓰인다.
var re = /ab+c/;
2.RegExp 객체의 생성자 함수 호출
var re = new RegExp("ab+c");
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/from
Array.from(arrayLike[, mapFn[, thisArg]])
매개변수
arrayLike :배열로 변환하고자 하는유사 배열 객체나 반복 가능한 객체.
mapFn (Optional) :배열의 모든 요소에 대해 호출할 맵핑 함수.
thisArg (Optional) :mapFn 실행 시에 this로 사용할 값.
Array.from('foo');
// ["f", "o", "o"]
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
var sum = [0, 1, 2, 3].reduce(function (accumulator, currentValue) {
return accumulator + currentValue;
}, 0);
// sum is 6
var total = [ 0, 1, 2, 3 ].reduce(
( accumulator, currentValue ) => accumulator + currentValue,
0
);
accumulator : 콜백의 반환값을 누적
currentValue : 처리할 현재 요소
currentIndex (Optional) :처리할 현재 요소의 인덱스
array (Optional) : reduce()를 호출한 배열
location.reload(true);
location.href = location.href;
history.go(0);
[JavaScript] 시간 지연 함수, 일정 시간 뒤 실행시키기, setTimeout() {}
setTimeout(function() { // Code here }, delay);
//예시)
setTimeout(function() {
console.log('3초후 실행');
}, 3000);
// 3초 후 함수 실행- '3초후 실행' 출력
setInterval은 실행 간격을 설정하는 함수이다.
//push(), unshift()는 web project1에서 정리했었다.
//또다른 배열 추가 방법은 splice()이다.
arr.splice("위치",0,["요소1","요소2"....])
/*index "위치"에 "요소1","요소2"...를 추가
원하는 위치에 하나 이상의 요소를 추가할 수 있는 것이 특징이다.*/
//배열 삭제 방법
array.pop : 마지막 요소 제거
array.shift : 첫번째 요소 제거
array.splice(index,갯수) :특정 index부터 특정 갯수의 요소를 제거
arr.splice(1,2):index1 부터 2개의 요소를 제거/*
배열 추가방법과도 동일한데, 추가시에는 제거할 요소의 갯수를 0으로 넣었다.
제거 시에는 대체할 요소를 지정하지 않았기 때문에 삭제된 상태로 결과가 출력되는 것이다.
<h1 id="code">dd</h1>
//id가 code인 텍스트 dd가 화면상에 출력된다.
var newarr = [];
for (var i = 0; i < 6; i++) {
newarr.push(number[Math.floor(Math.random() * 15)]);
}
var hex = "#" + newarr.join("");
//랜덤으로 생성한 숫자코드를 hex라는 변수에 저장한다.
var x = document.getElementById("backgr");
//document.getElementById를 통해 backgr라는 태그의 정보를 가져와 변수x로 정의한다.
x.style.backgroundColor = hex;
//x의 스타일 중, 배경색상을 새로운 hex라는 변수에 들어있는 정보로 변경해준다.
document.getElementById("code").innerHTML = hex;
//id가 code인 태그에 접근해, HTML을 hex로 변경한다.
//화면상에 출력된 dd라는 텍스트가 랜덤으로 생성된 숫자코드로 변경된다.
https://poiemaweb.com/js-math
https://poiemaweb.com/js-array
[자바스크립트] 배열에 값 앞 또는 뒤에 추가하기, unshift(), push()
https://poiemaweb.com/js-function
https://poiemaweb.com/js-array
[자바스크립트] 배열을 문자열로 변환, 요소 합치기; Join Array JavaScript](http://mwultong.blogspot.com/2007/02/join-array-javascript.html)
[JS] 자바스크립트의 화면 출력 방법 정리