For those unfamiliar with JS: subValue (the first argument in the forEach callback) is the value contained at arr[index].

  • Codex
    link
    10
    edit-2
    10 months ago

    Trivially, could also just be a retVal.map(self.cleanupMetadata)

    • @[email protected]
      link
      fedilink
      16
      edit-2
      10 months ago

      But it can’t! (Maybe)

      calling map(obj.func) will pass func but won’t set the this parameter correctly. If the called method uses this you will have a bad time.

      The code you actually want would be retval.map(v => self.cleanupMetadata(v)) or the old-skool retval.map(self.cleanupMetadata.bind(self)).

      Also the first version reuses the Array which may be important, but even if not will likely result in better performance. (Although this is likely mitigated by making the array polymorphic depending on the return type of cleanupMetadata and the overhead of forEach vs map.)

      Wow, isn’t JS a great language.

  • @orclev
    link
    610 months ago

    Entire block could literally be replaced with arr[index] = self.cleanupMetadata(subValue).

      • @orclev
        link
        910 months ago

        Figuratively the block could be replaced with a roll of duct tape and some chewing gum.