Set似乎是一种创建具有保证唯一元素的数组的好方法,但它不提供任何获取属性的好方法,除了generator[Set].values,它以myset.values.next()
的尴尬方式调用。
如果您可以在集合上调用map
和类似的函数,那么这是可以的。但你也不能那样做。
我尝试过array.from
,但似乎只转换了类数组(NodeList和TypedArrays?)对象设置为数组。再试一次:object.keys
对Sets不起作用,set.prototype没有类似的静态方法。
那么,问题是:是否有任何方便的内置方法来创建具有给定集合的值的数组?(元素顺序并不重要)。
如果不存在这样的选项,那么也许有一个很好的惯用的一行式程序来做这件事?例如,使用for...of
或类似的?
通过https://speakerdeck.com/anguscroll/es6-未经Angus Croll审查
原来,我们可以使用spread
运算符:
var myArr = [...mySet];
或者,使用array.from
:
var myArr = Array.from(mySet);
如果不存在这样的选项,那么也许有一个很好的惯用的一行式程序来做这件事?像,用来...的,或者类似的?
实际上,有几种方法可以将集合转换为数组:
使用array.from
let array = Array.from(mySet);
简单地扩展
数组中的集合
let array = [...mySet];
传统的方式,迭代并推送到一个新数组(集合确实有foreach
)
let array = [];
mySet.forEach(v => array.push(v));
以前,使用非标准的、现在已不推荐使用的数组理解语法:
let array = [v for (v of mySet)];
如何将集合转换为数组?给出了三个关于将集合转换为数组的答案,这些答案目前都无法在Chrome浏览器中使用。 假设我有一个简单的集合 我可以迭代我的变量并将元素添加到一个空数组中 但是,还有其他更广泛的浏览器支持的方法吗?
所以我试图生成一个数组,其中填充了唯一的随机整数,我发现用arraylist来实现这一点是最有效的方法。 现在我试着使用但我不太确定括号里应该放什么,也不确定这是否真的能起作用。有没有其他转换方法,因为我不能简单地通过。
现有两个名为getDetails(…)的方法 。一个需要至少一个必需参数,另一个需要一个集合(不验证集合的内容/大小)。 问题是集合有时会作为空传递,并且根据我的业务案例,我总是期望至少传递一个值。因此,我需要将该方法设为私有,它接受集合。 我计划将下面的方法作用域设置为private,这样调用者就不会使用零属性调用此方法。 调用方方法之一是将集合对象传递给下面的getDetails, id.ge
我想在Scala中映射Java数组。对于普通的Java集合,我知道我可以使用 但是,对于阵列,此转换不起作用: 那么,如何将Java数组转换为Scala集合、iterable或可以映射的对象呢?
运行代码时,出现以下错误: 导致的代码是: 但当我这样做时: 我得到以下输出: [1,7,15] 我不明白为什么我不能将其转换为整数[]。有什么建议吗?
在数据库中,我有以下JSON字符串: 我在AdditionalData中得到上面的JSON字符串(这是我代码中的一个属性)。 但是我需要将JSON列表转换为JSON。我没有任何特定的模型将列表映射为JSON格式。该JSON字符串可能不同(嵌套或更嵌套)。 基本上,我需要将JSON字符串转换为JSON数据,我需要在POSTMAN中显示