728x90
어떤 트리나 그래프 또는 리스트나 배열을 순회하면서 해당 값을 삭제하고 싶거나, 어떤 조건에 의해 이터레이블 객체 값을 필터링 하고 싶을때 자바스크립트에서 filter만한게 없다.
긴장되는 상황에서 바로바로 재깍재깍 떠오르지 않을 수 있지만, 제발 빨리 기억하게 하자!!!
class Graph{
constructor(){
this.adjacencyList = {};
}
addVertex(vertex){
if(!this.adjacencyList[vertex]) this.adjacencyList[vertex] = [];
}
addEdge(v1,v2){
this.adjacencyList[v1].push(v2);
this.adjacencyList[v2].push(v1);
}
removeEdge(vertex1,vertex2){
// 해당 v값 중에서 vertax2가 아닌거만 받고 싶을 때 사용!!
this.adjacencyList[vertex1] = this.adjacencyList[vertex1].filter(
v => v !== vertex2
);
// 마찬가지
this.adjacencyList[vertex2] = this.adjacencyList[vertex2].filter(
v => v !== vertex1
);
}
}
let g = new Graph();
g.addVertex("Dallas");
g.addVertex("Tokyo");
g.addVertex("Aspen");
g.addEdge("Dallas", "Tokyo");
g.addEdge("Dallas", "Aspen");
제발~ 빠르게~ 기억하자~~
728x90
'자바스크립트 끄적끄적' 카테고리의 다른 글
헬퍼 함수란? (0) | 2022.08.24 |
---|---|
forEach() 이용 정리 (0) | 2022.08.22 |
자바스크립트 - 배열 합치고 싶을때..!!(concat, push, Spread) (0) | 2022.08.13 |
자바스크립트 동작과정에 대한 좋은 설명 (0) | 2022.08.09 |
자바스크립트 2차원 배열내 최대값 찾기 (0) | 2022.08.08 |