0

嘿,伙计,任何人都可以帮我修改代码,这样它就能完成文本中显示的任务,

功能tad(strg){var char=strg.split('-')对于(var i=1;i<字符长度;i++){return char[i].charAt(0).toUpperCase()+char[i].slice(1)}}camelize(“background-color”)==“backgoundColor”camelize(“list-style-image”)==“listStyleImage”
0

5个答案5

重置为默认值
2

假设您想将其中包含连字符的所有单词组合替换为驼峰大小写单词。您可以将正则表达式与字符串重新放置带有一个回调函数,该函数将连字符后的所有单词都大写。

功能camelize(strg){return strg.replace(/-(\w)/g,函数(match){return match[1].toUpperCase();});} camelize(“背景色”);//背景颜色骆驼化(“z指数”);//z索引camelize(“list-style-image”);//列表样式图像

小提琴

1

如下图所示更改功能

功能tad(strg){var char=strg.split('-')对于(var i=1;i<字符长度;i++){char[i]=char[i].charAt(0).toUpperCase()+char[i].slice(1)}return char.join(“”);}
0

您将在循环完成迭代之前返回。这里最好的办法是使用数组.原型.reduce这样地

功能tad(strg){return strg.split('-').reduce(函数(result,currentStr){返回结果+currentStr.charAt(0).toUpperCase()+current Str.slice(1);}, "");}console.log(tad(“background-color”)===“backgoundColor”);#真的console.log(tad(“list-style-image”)===“listStyleImage”);#真的
0

首先,您应该将结果连接到某个变量中,而不是在循环中返回。

其次,不要忘记添加数组的第一个元素,因为循环是从1开始的。

功能camelize(strg){var char=strg.split('-'),结果=char[0]对于(var i=1;i<字符长度;i++){结果+=char[i].charAt(0).toUpperCase()+char[i].slice(1)}返回结果}警戒(camelize(“背景色”));警报(camelize(“list-style-image”));

这是小提琴:

http://jsfiddle.net/C78T3/

0

返回从该循环的第一次迭代中的整个函数。相反,您希望对每个部分都这样做,并将这些部分连接在一起:

camelize函数(字符串){返回string.split('-').map(函数(part,i){返回i?part.charAt(0).toUpperCase()+part.slice(1):零件;}).加入(“”);}//或camelize函数(字符串){返回string.split('-').reduce(函数(m,part){return m+part.charAt(0).toUpperCase()+part.slice(1);});}//或函数camalize(字符串){var parts=string.split('-'),结果=“”for(var i=1;i<部件长度;i++){结果+=部件[i].charAt(0).toUpperCase()+部件[i].slice(1)}返回结果;}
2
  • 1
    第一个函数实际上为“background-color”返回“BackgroundColor” 评论 2014年7月25日13:21
  • @扬特拉卡尔:哦,对了,我没注意到警察想要第一个单词不同。现已修复。
    – 贝吉
    评论 2014年7月25日13:25

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.