JavaScript map에는 두 가지 방법이 있습니다. get 및 has. 메소드 get은 요소가 존재하지 않으면 을 반환하고 정의되지 않은 값이에 추가 된 경우 undefined를 반환합니다.JavaScript 맵에서 Double Seevs Unsigned : TryGet wanted
그래서 기존 메서드를 반환하거나 새로운 메서드를 추가하고 존재하지 않는 경우 반환하는 내 메서드 GetAlways or such을 구현하면 런타임 성능을 희생하여 이중 매핑을 찾거나 API 순도를 희생하지 않고 정의되지 않은 것으로 정의됩니다. 지도에 정의되지 않은 값을 안전하게 추가 할 수 없게합니다.
TryGet from C#과 비슷한 세 번째로 효율적이고 순수한 선택이 있습니까? 불순한 선택을위한
코드 : 느린 선택을위한
Map.prototype.GetAlways = function(name){
let child = this.get(name);
if (child === undefined){ // equating undefined value to non-existence
child = {};
this.set(name, child);
}
return child;
}
코드 :
Map.prototype.GetAlways = function(name){
if(this.has(name)) // first map seek
return this.get(name); // second map seek
let child = {};
this.set(name, child);
return child;
}
arrow 연산자는 "this"키워드를 함수 외부의 의미로 바인딩합니다. 메서드에 함수 표기법을 사용하려고합니다. –