如何从普通的JavaScript数组创建kotlin.collections.Set?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从普通的JavaScript数组创建kotlin.collections.Set?相关的知识,希望对你有一定的参考价值。

我试图从普通的javascript调用已编译成JavaScript的Kotlin模块。模块内部的Kotlin方法之一需要传递kotlin.collections.Set。如何从纯JavaScript数组创建这样的set对象?我查看了编译后的代码,Kotlin对Kotlin.kotlin.collections.setOf_i5x0yv$这样的方法进行了内部引用,但我认为没办法从外部调用这些代码。

答案

根据Kotlin documentation集不在Javascript中表示。

另一方面,数组被映射。因此,可以编写一个简单的函数,将Javascript数组映射到Kotlin集。

@JsName("createSetFromJsArray")
fun <TValue> createSetFromJsArray(array: Array<TValue>) = array.toSet()

从Javascript调用Kotlin函数时可以使用此函数,如下所示:

var test = ["a", "b", "c"];
aKotlinFunction(createSetFromJsArray(test));

和Kotlin函数实现如下:

@JsName("aKotlinFunction")
fun aKotlinFunction(test: Set<String>) {
    console.log("aKotlinFunction called with param ${test.joinToString()}")
}

以上是关于如何从普通的JavaScript数组创建kotlin.collections.Set?的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript数组的简单介绍

如何在javascript中从现有数组创建一个新数组

如何在javascript中从内部JSON数组创建具有一些属性的数组

如何从SharePoint列表创建javascript数组?

如何从 SQL where 子句创建一个 JavaScript 函数,以将其作为谓词传递给 JavaScript 数组的过滤函数?

JS,javascript 如何把普通数组转换成JSON数组