将名称数组从“姓氏”、“第一个”更改为“姓氏”

Change array of name from Last, First to First Last

本文关键字:第一个 姓氏 数组      更新时间:2023-09-26

我正在尝试将名称数组从['last, first']重新格式化为['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"将是名称为"Joe Schmo"、"Billy Smith"等格式的输出数组。谢谢!

你几乎完成了它。您需要将classA声明为空数组,然后将 class1 中的每个名称分配给 classA 中的同一索引。

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

你不把它分配回来看起来像一个错字

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

你也可以使用数组的map函数,正如@Oriol指出的那样 - 这可能更好。 但上面的一行是对代码的"修复"。

您可以使用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(' ');
}