嘿家伙可以帮助我修复我的代码,以便它完成文本中显示的任务,
function tad(strg) {
var char = strg.split('-')
for (var i = 1; i < char.length; i++) {
return char[i].charAt(0).toUpperCase() + char[i].slice(1)
}
}
camelize("background-color") == 'backgroundColor'
camelize("list-style-image") == 'listStyleImage'
答案 0 :(得分:2)
假设您要将所有带有连字符的单词组合替换为驼峰式单词。您可以使用带有String.replace
的正则表达式,其回调函数可以将连字符后的所有单词大写。
function camelize (strg) {
return strg.replace(/-(\w)/g, function (match) {
return match[1].toUpperCase();
});
}
camelize("background-color");
// backgroundColor
camelize("z-index");
// zIndex
camelize("list-style-image");
// listStyleImage
答案 1 :(得分:1)
改变你的功能,如下面的
function tad(strg) {
var char = strg.split('-')
for (var i = 1; i < char.length; i++) {
char[i] = char[i].charAt(0).toUpperCase() + char[i].slice(1)
}
return char.join('');
}
答案 2 :(得分:0)
在循环完成迭代之前返回。这里最好的事情就是像这样使用Array.prototype.reduce
function tad(strg) {
return strg.split('-').reduce(function(result, currentStr) {
return result + currentStr.charAt(0).toUpperCase() + currentStr.slice(1);
}, "");
}
console.log(tad("background-color") === "backgroundColor");
# true
console.log(tad("list-style-image") === "listStyleImage");
# true
答案 3 :(得分:0)
你在该循环的第一次迭代中从整个函数中return
。相反,您希望为每个部件执行此操作,并将部件连接在一起:
function camelize(string) {
return string.split('-').map(function(part, i) {
return i ? part.charAt(0).toUpperCase() + part.slice(1) : part;
}).join("");
}
// or
function camelize(string) {
return string.split('-').reduce(function(m, part) {
return m + part.charAt(0).toUpperCase() + part.slice(1);
});
}
// or
function camelize(string) {
var parts = string.split('-'),
result = ""
for (var i = 1; i < parts.length; i++) {
result += parts[i].charAt(0).toUpperCase() + parts[i].slice(1)
}
return result;
}
答案 4 :(得分:0)
首先,你应该在一些变量中连接结果,而不是在循环中返回。
其次,不要忘记添加数组的第一个元素,因为你的循环是从1开始的。
function camelize(strg) {
var char = strg.split('-'), result = char[0]
for (var i = 1; i < char.length; i++) {
result += char[i].charAt(0).toUpperCase() + char[i].slice(1)
}
return result
}
alert(camelize("background-color"));
alert(camelize("list-style-image"));
这是小提琴: