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);
가짜 배열을 진짜로 변경 시켜주는 편한 연산자임
댓글
댓글 쓰기