首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将这个GorillaScript转换成LiveScript?

如何将这个GorillaScript转换成LiveScript?
EN

Stack Overflow用户
提问于 2016-04-03 18:57:38
回答 1查看 72关注 0票数 0

我有这个GorillaScript代码来扁平数组:

代码语言:javascript
复制
Array::compact  :=  #
  for filter value in this
     value and (typeof value.isempty != 'function' or not value.isempty()) and (typeof value != 'object' or Object.keys(value).length != 0)

GorillaScript有点死了。能帮我把这个翻译成LiveScript吗?我对LiveScript很陌生。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-03 19:26:55

直译应该是这样的。

代码语言:javascript
复制
Array.prototype.compact = ->
  [v for v in @ when v and (typeof v.isempty isnt \function or not v.isempty!) and (typeof v isnt \object or Object.keys value .length > 0)]

一个更惯用的例子可能是:

代码语言:javascript
复制
is-empty = ->
  | not it => false 
  | typeof it.isempty isnt \function or not it.isempty! => true
  | typeof it isnt \object or not Object.keys it .length > 0 => true
  | otherwise => it

Array.prototype.compact = -> [x for x in @ when not is-empty x]

注意,这是在我头上做的--我的LiveScript有点生疏了,但是这里的一般想法是可以的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36389743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档