Javascript的Java风格集合集合

Gui*_*lmi 9 javascript collections set

我需要一个具有类似于Java中的Set的API的Set.

这个实现:

http://jsclass.jcoglan.com/set.html

需要使用RequireJS,这需要我的Java大脑此刻扭曲太多.

发布功能是Set的功能将是一个很好的答案.或者是已经创建此代码的Google Set或其他技术巨头的链接.

Google的关闭怎么样?这个名字让我很困惑,但它有一套.

ger*_*tan 10

在我看来,无论java.util.Set可以实现什么,都可以使用简单的javascript对象来完成.我不明白为什么你需要额外的库:

// empty set
var basket = {};

// adding object to set    
basket['apple'] = true;
basket['banana'] = true;
basket['orange'] = true;
basket['apple'] = true;

// iterating through set contents, should print:
// apple
// banana
// orange
for(var fruit in basket)
  console.log(fruit);

// check if an element exist
if(basket['pineapple']) {
  console.log('has pineapple');
} else {
  console.log('no pineapple');
}

// remove element from set
delete basket['apple'];
Run Code Online (Sandbox Code Playgroud)

  • 对于一个真实的集合,如果内容是使用`Object.toString`不能或不应该转换为常量字符串的对象,这会变得更复杂一些.在Python中,我使用`set`比使用数组更多,我真的很想念它.我认为Python的集合也不是真正的集合,它们是由其值的内存地址隐式索引的散列表,但至少我不必自己管理密钥或散列函数.我还没有找到我真正喜欢的解决方案. (2认同)