Skip to content

jargon could end up undefined #39

@sr105

Description

@sr105

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

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