如何使用数组构造Set

时间:2013-07-07 19:27:35

标签: javascript node.js set ecmascript-6

我正在使用Node.JS v0.11.3中的Set--harmony标志。 API工作正常,我可以addremoveclear等。但我无法使用数组初始化集合。我尝试过(根据the MDN page提示)

var mySet = new Set([1, 1, 2]);

如何将数组转换为集合? MDN过时了吗? Node.JS是否没有实现该功能?

4 个答案:

答案 0 :(得分:4)

Set构造函数的v8 implementation尚不支持current draft of the Harmony specification的§15.16.1.1中提到的iteratorcomparator个参数,以及节点使用v8作为其JavaScript解释器。

作为创可贴,您可以使用simplesets package

答案 1 :(得分:2)

现在使用提供给构造函数的数组在v8中正常工作。我使用的是node v6.2.0(v8版本5.0.71.47)。

            PaletteData palette=new PaletteData(0xff0000,0x00ff00,0xff);
            ImageData imageData = new ImageData(width, height,32,palette);

            int pixelVecLoc=0;
            for (int h = 0; h<1300; h++)
            {
                for (int w = 0; w<1300; w++)
                {
                    int p = 0;
                    Pixel pixel = pixelVec.get(pixelVecLoc);
                    p = (pixel.Alpha<<24) | (pixel.Red<<16) | (pixel.Green<<8) | pixel.Blue;                        

                    imageData.setPixel(w, h, p);

                    pixelVecLoc++;
                }
            }

            imageData = imageData.scaledTo(600, 500);
            Image image = ImageDescriptor.createFromImageData(imageData).createImage();
            //Image image = new GVImageProcessingJNIWrapper().GetBMPFromGTX();
            e.gc.drawImage(image, 0, 0);

答案 2 :(得分:1)

据我所知,我的理解是,这项工作的实施是新的和实验性的。有些事情可能无法正常运作。此外,我已经注意到许多实例,其中新功能在经过一段时间的成熟后才表现出预期的效果。如果功能上是您的目标,最好避免这种情况并简单地手动添加它们。

答案 3 :(得分:0)

你可以尝试这个:

示例会话:

> var sets = require('simplesets')
undefined
> var mySet = new sets.Set([1, 1, 2]);
undefined
> mySet
{ _items: [ 1, 2 ] }
> mySet.size()
2