Mat.max.apply(null,arr)
Math.max(...arr)
배열 결합
[1,2].concat([3,4])
배열 중간에 배열 추가
Array.prototype.splice.apply(arr1, [1,0].concat(arr2));
배열 복사
var copy = origin.slice();
const copy = [...origin];
이터러블을 배열로의 변환
arr = Array.prototype.slice.call(iterable)
arr = [...iterable]
단, 이터러블이 아니라면 스프레드 문법 대상이 되지 못한다.
const copy = {...obj}
로의 객체 프로퍼티 추가ES5
var arr = [1,2,3];
var one = arr[0];
.
.
.
var three = arr[2];
ES6
const arr = [1,2,3];
const [one, two, three] = arr;
const [a, b, c = 3] = [1, 2, ,];
console.log(a, b, c);
const user = { firstName: "Hansu", lastName: "Park" };
const { firstName, lastName } = user; //1
const { firstName: first, lastName: last } = user; //2
console.log(firstName, lastName, first, last);
let [pre, cur] = [0, 1];
console.log(pre, cur);
let n = 10;
while (n--) {
[pre, cur] = [cur, pre + cur];
console.log(pre, cur);
}
//0 1
//1 1
//1 2
//2 3
//3 5
[pre, cur] = [cur, pre + cur];
에서pre = cur // pre = 1
cur = pre + cur // cur = 1 + 1 = 2
pre = cur // pre = 1
cur = pre + cur // cur = 0 + 1 = 1
생성자함수: new Set(array)
사이즈 확인: Set.prototype.size
요소 추가: Set.prototype.add(elem)
요소 존재 확인: Set.prototype.has(elem)
요소 삭제: Set.prototype.delete(elem)
일괄 삭제: Set.prototype.clear()
요소 순회: Set.prototype.forEach(elem,elem,set)
이터러블임으로for of 문으로도 순회가 가능하다.
const set1 = new Set([1, 2, 3, 5]);
const set2 = new Set([2, 3, 4, 6]);
const subSet1 = new Set([1, 2]);
//교집합
Set.prototype[Symbol.for("intersection")] = function (set) {
return new Set([...this].filter((value) => set.has(value)));
};
console.log(set1[Symbol.for("intersection")](set2)); //Set(2) { 2, 3 }
//합집합
Set.prototype[Symbol.for("union")] = function (set) {
return new Set([...this, ...set].sort());
};
console.log(set1[Symbol.for("union")](set2)); //Set(6) { 1, 2, 3, 4, 5, 6 }
//여집합
Set.prototype[Symbol.for("difference")] = function (set) {
return new Set([...this].filter((value) => !set.has(value)));
};
//상위 집합
console.log(set1[Symbol.for("difference")](set2)); //Set(2) { 1, 5 }
Set.prototype[Symbol.for("isSuperSet")] = function (subset) {
return [...subset].every((value) => this.has(value));
};
console.log(set1[Symbol.for("isSuperSet")](subSet1)); //Set(2) { 1, 5 }
const map = new Map([["key1","value1"],["key2","value2"]])
Map.prototype.size
Map.prototype.set(key,value)
Map.prototype.has(key)
Map.prototype.delete(key)
Map.prototype.clear()
Map.prototype.forEach(key,value,set)
Map.prototype.keys()
: Map의 key를 값으로 가지는 이터러블이며 이터레이터인 객체 반환Map.prototype.values()
: Map의 value를 값으로 가지는 이터러블이며 이터레이터인 객체 반환Map.prototype.entries()
: Map의 key, value 쌍을 값으로 가지는 이터러블이며 이터레이터인 객체 반환