如何删除return语句[重复]

Posted

技术标签:

【中文标题】如何删除return语句[重复]【英文标题】:How to remove return statement [duplicate] 【发布时间】:2016-01-29 18:23:27 【问题描述】:

Coffeescript 坚持要加return语句,怎么去掉?

咖啡脚本:

  $('.box-menu').each (index, value) ->
    @boxes.push new LW.Box.Box @ajax, $(this).data('type')

编译后的Javascript:

$('.box-menu').each(function(index, value) 
  return this.boxes.push(new LW.Box.Box(this.ajax, $(this).data('type')));
);

【问题讨论】:

Coffeescript 自动返回块的最后一个值。你希望发生什么? 【参考方案1】:

你真的不能,但你可以用不同的方式来组织整个事情,因为jQuery.each在这里并没有真正的用处:

@boxes.push new LW.Box.Box @ajax, $(elem).data('type') for elem in $('.box-menu')

即使您不这样做,这里的 return 语句也绝对没有问题,这就是为什么 Coffeescript 首先将所有内容都作为表达式:通常没有区别。

如果绝对必要,您可以这样做:

$('.box-menu').each `function () 
  this.boxes.push(new LW.Box.Box(this.ajax, $(this).data('type')));
`

【讨论】:

技术上没有回答这个问题,但我同意这是更好的方法! 谢谢。这解决了我的很多问题。我喜欢你的第一个解决方案。 在 CoffeeScript 中使用原始 JS 是一种非常糟糕的做法。 CS 完全覆盖了 ECMA5,所以你可以在原始 JS 中做的任何事情都可以在 CS 中完成。 你错误地告诉 OP 他不能摆脱return,因为他可以(见Matheus208's answer)。 @Leonid 我不会真的称之为“摆脱”;它只是显式返回一个定义的值而不是一个隐式返回...它编译为无返回语句,但这是巧合。【参考方案2】:
 $('.box-menu').each (index, value) ->
    @boxes.push new LW.Box.Box @ajax, $(this).data('type')
    return

【讨论】:

感谢您提供此解决方案。它确实回答了这个问题,但我想我会使用非每个解决方案。 我同意。好多了:)

以上是关于如何删除return语句[重复]的主要内容,如果未能解决你的问题,请参考以下文章

oracle数据库中如何用sql语句查出重复字段以及如何删除?

sql中如何删除一个表中重复的记录?

SQL:如何删除由 CASE WHEN 语句创建的重复行

2022-12-07:删除重复的电子邮箱。删除重复数据后,id=3的数据被删除。请问sql语句如何写? DROP TABLE IF EXISTS `person`; CREATE TABLE `per

几个删除重复记录的SQL语句

Oracle中如何删除重复数据