如何重写lodash入门功能?

时间:2019-04-08 23:27:03

标签: javascript string override lodash

我有一个包含大量项目的字符串数组(此处显示了一个包含3个元素的样本大小的数组):

['helloWorld', 'helloEarth', '28rounds']

我正在使用Lodash的StartCase将它们转换为StartCase字符串。

因此,输出数组将为:['Hello World', 'Hello Earth', '28 Rounds']

但是我希望即使我们传入lodash StartCase函数也不要更改某些项目。有没有覆盖运算符,我可以将字符串包装到其中,以便lodash不会将其转换。

我希望按原样打印28rounds,但希望其他打印源转换为StartCase

我不想进行相等性检查,那是紧密结合的解决方案。

1 个答案:

答案 0 :(得分:0)

您可以使用带有RegExp的String.replace()(或lodash的替换)来捕获字母序列,并使用_.startCase()用新的字符串替换它们:

const arr = ['helloWorld', 'helloEarth', '28rounds']

const startCaseNoNumbers = str => str.replace(/^([A-Z]?[a-z]+)+/, _.startCase)

const result = arr.map(startCaseNoNumbers)

console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>