2016-12-18 3 views
0

У меня есть массив строки:Машинописи: concate всех элементов в массиве строк

public scene: Array<string> = ['gittare','saxsophone','drum']; 

Мне нужно объединить все строки в массиве, как 'gittare_saxsophone_drum'. Вот мое решение в рекурсивным образом:

addressCreator(array:Array<string>){ 


     if(array.length>0) 
      var fileName=array[0]+"_"+this.addressCreator(array); 
     else 
      return []; 
     return fileName; 
    } 

доли не имеет рекурсивный подход может быть:

addressCreator(array:Array<string>){ 

     array.splice(0,1); 
     for(let e of array) 
      var fileName=e+"_"+fileName; 

     return fileName; 
    } 

В обоих этих решений, я Nused var, которые не должны использоваться в функциональном программировании.

Итак, какой лучший подход?

+1

Я не понимаю, почему вы используете сращивание, поскольку сращивание удаляет элемент из вашего параметра. Это скорее проблема в функциональном программировании, так как это делает вашу функцию не чистой. После того, как вы вызвали свою функцию, ваш массив будет пустым, и это может привести к некоторым последствиям в других частях вашего кода. – Icepickle

+0

Я предлагаю вам прочитать страницы документации на массивах, чтобы вы знали, какие функции и методы доступны вам. –

ответ

3

Вы можете использовать метод .

let x = scene.join("_"); 
Смежные вопросы