2015-11-11 3 views
0

рассмотрит следующий код:lodash выгоды обыкновения заработать что-нибудь другое, то первую запись

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

lawCannotUse является массивом строк.

В console.log показывает:

enter image description here

Как вы можете видеть, в первую очередь на капитализируются, но ничего другого есть, нападение не должно быть и так должны Spark.

Что такое: lodashCapitalize?

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

Любые идеи?

ответ

2

Оказывается, что все строки в массиве после первого занимают лидирующие места. _.capitalize не прилагает никаких усилий, чтобы обрезать строку или прописную букву первого буквенно-цифрового символа. Вы можете, однако, обрезать строки вручную с помощью _.trim:

var _ = require('lodash'); 

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

Вы также можете составить две функции для получения многоразовой функции, как так

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

Просто хедз-ап: Как версии 4.0.0 «compose» был удален в пользу «flowRight». (Https://github.com/lodash/lodash/wiki/Changelog). Другим подходом, который работал для меня, было бы: 'return _.startCase (_. CamelCase (cannotUse));' – Fraccus

-3

Почему не использовать просто использовать JS .toUpperCase() ??????????

чисто JS, нет необходимости в какой-либо структуры:

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

}

+0

Поскольку 'toUpperCase()' преобразует все символы в string - не только первый, так что вам все равно придется писать свою собственную функцию capize. ([Это не слишком сложно] (http://stackoverflow.com/questions/1026069/capitalize-the-first-letter-of-string-in-javascript)) Но поскольку это вопрос с lodash, почему бы даже пойти там? – ippi

+0

извините: функция capitalizeFirstLetter (строка) { return string.charAt (0) .toUpperCase() + string.slice (1); } – cpugourou

+0

Я думаю, что слишком многие используют рамки для базового материала. Они должны начать изучать javascript перед любой структурой. И когда вы знаете javascript, вы обнаруживаете, что все эти рамки абсолютно бесполезны. Единственное, что делают эти рамки, - это замедление вашего кода. – cpugourou