官术网_书友最值得收藏!

Replacing collections with new instances

The simplest way to empty a collection is to replace it with a new instance, as shown here:

const empty = (collection) => {
if (collection instanceof List) {
return List();
}
if (collection instanceof Map) {
return Map();
}
return null;
};

const myList = List.of(1, 2);
const myMap = Map.of('one', 1, 'two', 2);

const myEmptyList = empty(myList);
const myEmptyMap = empty(myMap);

console.log('myList', myList.toJS());
// -> myList [ 1, 2 ]
console.log('myEmptyList', myEmptyList.toJS());
// -> myEmptyList []
console.log('myMap', myMap.toJS());
// -> myMap { one: 1, two: 2 }
console.log('myEmptyMap', myEmptyMap.toJS());
// -> myEmptyMap {}

We've created a little helper function called empty(). The idea is that it accepts either a list or map as its argument. Depending on the type of collection, a new instance is returned. Then, we can assign this new value to myEmptyList. Remember, as long as myList is referenced, it will never be garbage-collected. If you don't want this to happen, you could store the collection in a variable instead of in a constant. Then, empty() can simply replace the old collection:

var myList = List.of(1, 2);
myList = empty(myList);

Now, the garbage collector can pick up the first collection with the values 1 and 2.

主站蜘蛛池模板: 油尖旺区| 松溪县| 元谋县| 会同县| 延边| 鄂温| 哈巴河县| 杭锦后旗| 滦南县| 新乐市| 宁海县| 即墨市| 安吉县| 忻州市| 沙田区| 广水市| 奉贤区| 读书| 陆良县| 崇仁县| 庆云县| 调兵山市| 山丹县| 奉新县| 项城市| 南皮县| 广州市| 巴里| 德安县| 湄潭县| 景泰县| 偃师市| 兴安盟| 黑河市| 沂源县| 集贤县| 兴化市| 灵宝市| 鹤壁市| 金寨县| 额济纳旗|