17

I'm playing around with PEG.js

start = keyword

keyword = a:[a-z]? {return a.join("");}

Why am I getting here the error:

a.join is not a function

when I enter a valid string like abc?

Evgenij Reznik
  • 17,916
  • 39
  • 104
  • 181

2 Answers2

22

join() is an array-function, you cannot use it on a string: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/join

misantronic
  • 1,132
  • 2
  • 10
  • 23
  • `[a-z]?` will produce either a string containing one character or a null. If you used `[a-z]*` you would get an array that you could call join on. However, if you used `$[a-z]*`, that join would be done for you automatically, yielding a string with zero or more characters in it. – Joe Hildebrand Nov 29 '21 at 20:10
0

I was facing this error when I was applying join function and then returning the result in the same string array variable, we cannot do that we should save the result in some other string type variable

Muhammad Awais
  • 1,608
  • 1
  • 21
  • 21