2014-12-24 3 views
0

Я пытаюсь переформатировать массив имен от ['last, first'] до ['first last']. Я разработал, как это сделать с одним именем, но у меня проблемы с переформатированием всего массива имен.Изменить массив имен от Last, First to First Last

Вот то, что я до сих пор:

<body> 

<script> 

class1 = ['Schmo, Joe', 'Smith, Billy','Brown, John'] 

function reverseName() { 
for (a = 0; a < class1.length; a++) { 
    classA = class1[a].split(',').reverse.join(' '); 
} 
} 
document.getElementById("firstLast").innerHTML = classA; 


</script> 

<p id = "firstLast"></p> 
</body> 

«ClassA» будет выходной массив с именами в формате «Джо Schmo», «Билли Смит» и т.д. Спасибо!

+1

UM, вы никогда не вызываете свою функцию, и вы ссылаетесь на classA перед ее запуском. И вы продолжаете переопределять переменную classA – epascarello

ответ

0

Вы почти сделали это. Вам нужно объявить classA как пустой массив, а затем назначьте каждое имя от class1 к тому же индексу в classA.

function reverseName() { 
    var classA = []; 
    for (a = 0; a < class1.length; a++) { 
     classA[a] = class1[a].split(',').reverse.join(' '); 
    } 

    return classA; 
} 
+0

Быстрее ускоряющейся пули - спасибо за вашу помощь! – Tyler330

0

Вы можете использовать Array.prototype.map (ECMAScript 5):

var classA = ['Schmo, Joe', 'Smith, Billy','Brown, John'].map(function(item) { 
    return item.split(', ').reverse().join(' '); 
}); 

Или, с петлями,

var class1 = ['Schmo, Joe', 'Smith, Billy','Brown, John'], 
    l = class1.length, 
    classA = Array(l); 
for (var i = 0; i < l; ++i) { 
    classA[i] = class1[i].split(', ').reverse().join(' '); 
} 
+0

@LeeTaylor Пожалуйста, не включайте 'document.write' в мои ответы. – Oriol

+0

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

0

Вы не назначайте его обратно выглядит как опечатка

class1[a] = class1[a].split(',').reverse.join(' '); 

Вы также можете использовать функцию отображения массива, как указывает @Oriol - что, вероятно, лучше. Но вышеприведенная строка - это «исправление» вашего кода.