lodash capitalize 不会大写除第一个条目以外的任何内容

lodash capitalize wont capitalize anything other then the first entry

考虑以下代码:

lawCannotUse = lawCannotUse.map(function(cannotUse){
  console.log(cannotUse, lodashCapitalize(cannotUse));
  upperCaseCannotUse.push(lodashCapitalize(cannotUse));
});

lawCannotUse 是一个字符串数组。

console.log显示:

如你所见,第一个on是大写的,其他都不是,attack应该是,spark也应该是。

什么是:lodashCapitalize ?

var lodashCapitalize  = require('../../../node_modules/lodash/string/capitalize');

有什么想法吗?

为什么不简单地使用 JS .toUpperCase() ??????????

纯js,不需要任何框架:

function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);

}

您的数组中第一个字符串之后的所有字符串似乎都有前导 space。 _.capitalize 不努力 trim 字符串或大写第一个字母数字字符。但是,您可以使用 _.trim:

手动 trim 字符串
var _ = require('lodash');

lawCannotUse = lawCannotUse.map(function (cannotUse) {
  console.log(cannotUse, _.capitalize(_.trim(cannotUse)));
  // ...
});

您也可以像这样组合这两个函数来生成可重用的函数

var myCapitalize = _.compose(_.capitalize, _.trim);
// ...
myCapitalize("   abc");  // gives "Abc"