기본 콘텐츠로 건너뛰기

[ES6]모던 자바스크립트(javascript) 개발을 위한 ES6 강좌 Array

forOf 순회하기

var data = [1,2, undefined, NaN, null, ''];
data.forEach(function(value){
    console.log('valueis', value);
});
//문제점은 자신이 가지고 있지 않는 상위의 값까지도 추가해서 문제가 될수가 있음
Array.prototype.getIndex = function(){};    //function(){}가 생김
//그래서 forin을 array에서 쓰면 안됨
for(let idx in data){
    console.log(data[idx]+'forIn');
}
//forOf는 forin의 문제가 안일어남
for(let value of data){
    console.log(value+'forOf');
}

var str = "hello world!!!!";
//배열만을 위한게 아님
//문자열의 공백까지도 나옴
for(let value of str){
    console.log(value);
}
...(spread연산자, 펼침 연산자)

...배열안을 펼쳐서 보여줌
let pre = ['apple', 'orange', 100];
// ['apple', 'orange', 100]랑 같음 
let newData = [...pre]; 
console.log(pre, newData);
//false임 참조를 끊고 새로운 공간의 새로운 데이터를 복사한거임
console.log(pre === newData); 

배열 합치기 할때 편함 몇번째 자리 따지고 할 필요가 없음
let pre = [100,200,'hello', null];
let newData  = [0,1,2,3, ...pre,4];
console.log(newData);
immutable array 배열을 바꾸지 않고 새로운값으로 복사할수 있는 방법을 제공

let pre1 = [100,200,300];
function sum(a,b,c){ return a+b+c; } //pre1이 펼쳐지면서 나옴 console.log(sum.apply(null, pre1)); //이게 더 편함 console.log(sum(...pre1));
배열을 합치거나 펼쳐서 파라미터로 전달할때 유용

From
function addMark(){
    let newData = [];
    //arguments객체임 배열과 비슷한 형태로 만듬, 가변적 파라미터에서 가끔씩 씀
    for(let i=0; i<arguments.length; i++){
        newData.push(arguments[i]+'!');
    }
    console.log(newData);
    
    let newArray = Array.from(arguments);
    //에러임 가짜 배열이므로
    //let newData2 = arguments.map(function(value){
    let newData2 = newArray.map(function(value){
        return value + '!';
    });
    console.log(newData2);
}
addMark(1,2,3,4,5);

가짜 배열을 진짜로 변경 시켜주는 편한 연산자임



댓글

이 블로그의 인기 게시물

mac 맥 맥북 Brew 완전 삭제

맥북에서 Brew 초기화 Brew를 써서 h2를 쓰려고 하는데 brew install h2가 안되서 이리 저리 알아보다가 완전 삭제 후 다시 설치 하니까 되서 그 방법을 남겨놈 1. 터미널에 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)" 입력후 y랑 뭐 비번.. 2. /usr/local 폴더에서 Homebrew 폴더 삭제 rm -rf Homebrew/ 권한설정으로 잘.....삭제하고 3. 다시 설치 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 좀 오래걸리니까 기다려야한다는걸 배움... 출처.... https://discourse.brew.sh/t/error-no-formulae-found-in-taps/8331/9

ORA-28000 계정이 잠금되었습니다 계정 잠길때

오라클 계정이 잠길때 해제방법 증상 t he account is locked 오류 발생 원인 Oracle 에서 t he account is locked  에러가 나는 원인은 ● 잘못된 패스워드로 설정횟수만큼 접속 시도시 Lock. ●  30일동안(Default) 해당 계정으로 로그인을 하지 않았을 경우 Lock. 등이 있다. 해결방법 command창에서 * 로컬일경우, sqlplus "/as sysdba"  또는  sqlplus /nolog  conn /as sysdba  * 로컬이 아닐 경우, sqlplus /nolog conn sys/password@<sid> 이름/패스워드@sid로 입력 로 접속 후 SELECT username, account_status, lock_date FROM dba_users; 으로 Lock이 된 사용자를 확인한 후 LOCKED<TIMED> 라고 되있으면, 패스워드 설정횟수 입력 오류로, 아래의 Unlock 명령만, EXPIRED & LOCKED 라고 되있으면, 패스워드 기간만료로, Unlock 후 비밀번호를 지정해줘야 한다. ALTER USER 사용자명 ACCOUNT UNLOCK; 로 Lock된 사용자를 Unl ock 시킨다 방금 말했다시피, 다시 Lock된 사용자 확인했는데,  Open되지 않고 EXPIRED되어 있다면, alter user 사용자명 identified by 바꿀패스워드;  로 패스워드를 변경하거나 또는 SQL*PLUS 를 재시작하여 Lock를 해제한 계정(사용자명/패스워드)로 로그인 하면 패스워드 변경 창이 뜬다. 추가로 패스워드 Lock 횟수 확인하는 방법은 SELECT U.USERNAME,P.PROFILE, P.RESOURCE_NAME, P.LIMIT  FROM D

메이븐으로 라이브러리 인식

 간혹 퍼블릭 jar가 아닌 파일이 있는데 그럴때 쓰면 될듯 <dependency> <groupId> SimpleCryptLib </groupId> <artifactId> SimpleCryptLib </artifactId> <version> 1.1.0 </version> <scope> system </scope> <systemPath> ${basedir}/src/main/webapp/WEB-INF/lib/SimpleCryptLib-1.1.0.jar </systemPath> </dependency> version, scope, systemPath는 꼭 작성해야 한다 groupId, artifactId, version은 암거나 해도 되는거 같음 최근(2021.05.04)스프링 부트    < dependency > < groupId > NiceID </ groupId > < artifactId > NiceID </ artifactId > < version > 1.0 </ version > < scope > system </ scope > < systemPath > ${basedir}/src/main/resources/lib/NiceID.jar </ systemPath > </ dependency > 이걸 추가해주는것도 필요할지도..?? < build > < plugins > < plugin > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-maven-plugi