javascript - 将数组中字符串的首字母大写

标签 javascript ecmascript-6

我正在尝试编写一个函数,它只会将名字和姓氏的首字母大写……关于如何处理这个问题有什么想法吗?

const namesHardest = ['emIly sMith', 'angeliNA Jolie', 'braD piTt'];

function capitalizeNames(peopleArray) {
    return peopleArray.toString().toLowerCase().split('').map(function(word) {
        return (word.charAt(0).toUpperCase() + word.slice(1));
    }).join(' ').split();
}


// set the resulting array to this variabble
const capitalizedNames = capitalizeNames(namesHardest);
capitalizedNames;

最佳答案

一个问题是使用 array.toString - 导致像这样的字符串

'emIly sMith angeliNA Jolie braD piTt'

所以,你丢失了数组元素

您需要使用 array.map 单独处理每个元素

function capitalizeNames(peopleArray) {
    return peopleArray.map(function(name) { 
        /* do something with each name * 
    })
}

您的另一个问题是 split('') 将字符串拆分为字符 - 但您想将其拆分为空格...即 split(' ')

现在,我们有

function capitalizeNames(peopleArray) {
    return peopleArray.map(function(name) { 
        return name.split(' ').map(function(word) { 
            /* do something with each part of name * 
        });
    });
}

那么,现在,如何将字符串大写 - 您的代码有效,但我更喜欢

word[0].toUpperCase() + word.slice(1).toLowerCase();

放在一起就可以

function capitalizeNames(peopleArray) {
    return peopleArray.map(function(name) { 
        return name.split(' ').map(function(word) { 
            return word[0].toUpperCase() + word.slice(1).toLowerCase();
        });
    });
}

或者,在 ES2015+ 中,使用箭头函数(既然你的代码使用了 const,为什么不使用所有的 ES2015+)

const namesHardest = ['emIly sMith', 'angeliNA Jolie', 'braD piTt'];

const capitalizeNames = peopleArray => peopleArray.map(name => 
	name.split(' ').map(word => 
		word[0].toUpperCase() + word.slice(1).toLowerCase()
	).join(' ')
);

const capitalizedNames = capitalizeNames(namesHardest);
console.log(capitalizedNames);

关于javascript - 将数组中字符串的首字母大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50223536/

相关文章:

javascript - 我可以将值为 'undefined' 的字符串转换为实际的未定义吗?

javascript - 输入类型 ="file"onclick 有效,但文件选择不显示

javascript - 管道 'AsyncPipe' 的参数无效

javascript - 如何使用 jquery 或 javascript 从两个或多个数组创建值?

javascript - 找到数组中的最小值并添加类

javascript - 创建具有可在函数作用域内外访问的属性的函数

javascript - 从本地脚本导入 ES6 模块

javascript - 迭代对象直到找到与标签匹配的值

javascript - 如何将所有模板包含到一个 Angular 文件中

javascript - 如何在 Javascript 中导入语法之前运行几个代码?