В функциональном программировании Array - это Monad , что означает, что он плоский. FlatMap - это реализация оператора связывания Monadic, который для массива отображает элемент в новый массив и объединяет их вместе.
С этой идеей вам просто нужно добавить новое значение в выходной массив внутри функции flatMap. Смотрите следующее
Array.prototype.someMethod = function(a){ return this.flatMap(i => [i,a]) }
myArray.someMethod("XXX")
// Array(12) [ "q", "XXX", "w", "XXX", "e", "XXX", "r", "XXX", "t", "XXX", … ]
Приведенный выше пример добавляет XXX в конец массива, поэтому мы можем игнорировать заполнение последнего элемента, используя аргумент index в flatMap следующим образом
Array.prototype.someMethod = function(a){ let L=this.length; return this.flatMap((n,i) => (i<L-1) ? [n,a] : [n]) }
myArray.someMethod("XXX")
// Array(11) [ "q", "XXX", "w", "XXX", "e", "XXX", "r", "XXX", "t", "XXX", "y"]