我正在使用Scala.JS和Akka.JS来了解客户端,基于actor的应用程序。当用户从国家列表中选择国家时,将构建该国家/地区的城市列表。这部分工作正常。
但是,有些国家被列为只有一个城市(EG香港只包含香港),所以当我显示城市列表时,我首先要查看城市列表的长度(即输入js.Dynamic)。如果> 1,我会在下拉列表中添加一个不可选择的占位符“选择一个城市”,然后构建城市列表。只要我随意做这件事,一切正常。
尽管我可以非常高兴map
cityList
类型js.Dynamic
中的某个函数,但似乎测试cityList
的长度不是这可以直接完成,即使cities
JSON对象是一个数组:
"cities": [
{
"cityName": "Parròquia de Sant Julià de Lòria",
"cityId": 3039162,
"coords": {
"lon": 1.48247,
"lat": 42.462471
}
},
{
"cityName": "Pas de la Casa",
"cityId": 3039604,
"coords": {
"lon": 1.73361,
"lat": 42.54277
}
},
如果我尝试:
if (cityList.length == 1)
或
if (cityList.size == 1)
然后我得到编译警告,js.Dynamic and Int are unrelated
因此无法进行相等性比较,如果我尝试
if (cityList.size.asInstanceOf[Int] == 1)
或
if (cityList.length.asInstanceOf[Int] == 1)
这总是失败,因为Int
不是undefined
的成员。
最后,我试过
if ((cityList.asInstanceOf[Seq[js.Dynamic]]).size == 1)
但这会因[object Object] is not an instance of scala.collection.Seq
如果没有先将js.Dynamic
卸载到其他一些数据结构中(我想避免,因为那是双重处理数据),我如何获得from nltk.corpus import wordnet
syns = wordnet.synsets("goat")
print(syns[0].definition())
的长度?
Chris W
答案 0 :(得分:0)
obj.subsections = _toArray(obj.subsections);