首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于从数组中删除项的拆分器

用于从数组中删除项的拆分器
EN

Stack Overflow用户
提问于 2014-03-30 22:08:31
回答 1查看 45关注 0票数 1

虽然我知道splats,但我仍然不能完全掌握以下代码的最后一行:

代码语言:javascript
复制
class Borrowable extends Decorator
  constructor: (@libraryItem) ->

  removeBorrower: (borrower) ->
    @borrowers[t..t] = [] if ( t = @borrowers.indexOf(borrower) ) > -1

顺便说一句,这段代码是从https://github.com/aksharp/Design-Patterns/blob/master/CoffeeScript/Decorator.coffee复制的

我假设这是Destructuring Assignment,我仍然不能完全理解它在幕后发生了什么。

你能帮我澄清一下吗?

EN

回答 1

Stack Overflow用户

发布于 2014-03-30 22:51:31

让我们仔细看看最后一行:

代码语言:javascript
复制
@borrowers[t..t] = [] if ( t = @borrowers.indexOf(borrower) ) > -1

我不确定这个表单是否算作解构赋值,可能是。

首先,它调用@borrowers.indexOf(borrower)来检查borrower是否存在于@borrowers数组中,并获取它的索引。

通常使用borrower in @borrowers表单而不是@borrowers.indexOf(borrower) > -1,但在这种情况下,我们还需要元素的索引。

如果borrower出现在@borrowers中,它将获取索引tt之间的@borrowers数组部分

代码语言:javascript
复制
@borrowers[t..t]

[borrower],并将其分配给空数组[],从而从@borrowers数组中删除borrower

下面是这个赋值的js类等价物:

代码语言:javascript
复制
@borrowers.splice t, 1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22744963

复制
相关文章

相似问题

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