Skip to content

jargon could end up undefined #39

Open
@sr105

Description

https://github.com/hubot-scripts/hubot-business-cat/blob/master/src/businesscat.coffee#L27

In removeTerm(), if a term is not found, it returns undefined due to the return being nested inside of the if [found]. Thus, if the last term in omittedJargon is not found, jargon will be set to undefined.

Possible fixes:

  • I think reducing the indent on the return will fix this.
  • Don't return anything and remove the jargon = from the omit line. removeTerm alters the incoming list.

Problem:

coffee> jargon = [1..5]
[ 1, 2, 3, 4, 5 ]
coffee> jargon = removeTerm(term, jargon) for term in [3, 99]
[ [ 1, 2, 4, 5 ], undefined ]
coffee> jargon
undefined

Possible solution 1:

------> removeTerm = (term, arrayToDeleteFrom) ->
.......   index = arrayToDeleteFrom.indexOf term
.......   if index > -1
.......     arrayToDeleteFrom.splice index, 1
.......   return arrayToDeleteFrom
[Function: removeTerm]
coffee> jargon = [1..5]
[ 1, 2, 3, 4, 5 ]
coffee> jargon = removeTerm(term, jargon) for term in [3, 99]
[ [ 1, 2, 4, 5 ], [ 1, 2, 4, 5 ] ]
coffee> jargon
[ 1, 2, 4, 5 ]
coffee>

Possible solution 2:

coffee> jargon = [1..5]
[ 1, 2, 3, 4, 5 ]
coffee> removeTerm(term, jargon) for term in [3, 99]
[ [ 1, 2, 4, 5 ], undefined ]
coffee> jargon
[ 1, 2, 4, 5 ]
coffee>

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions