今天在codewars上遇到了这样一个问题,不要脸的我又来问答案了,哈哈。。
下面是我写的答案:
运行后:
好像我的首字母没有转换过来!我觉得应该是call()的传参出的问题,可是我单独打印变量n时,它已经是大写了,还是我继承数组的原型对象时出错了。实在不知是那个地方出了问题,特来求助!!!!求大神指点。
谢谢大家,问题解决了。。贴上一个别人通过的代码。。
今天在codewars上遇到了这样一个问题,不要脸的我又来问答案了,哈哈。。
下面是我写的答案:
运行后:
好像我的首字母没有转换过来!我觉得应该是call()的传参出的问题,可是我单独打印变量n时,它已经是大写了,还是我继承数组的原型对象时出错了。实在不知是那个地方出了问题,特来求助!!!!求大神指点。
谢谢大家,问题解决了。。贴上一个别人通过的代码。。
splice
是数组方法而不是字符串
function generateHashtag(str){
var arr, i,tempArr;
if(!str||str.length>140||str.length==0){
return false;
}
arr=str.split(" ");
for(i=0;i< arr.length;i++){
tempArr=arr[i].split('');
Array.prototype.splice.call(tempArr,0,1,tempArr[0].toUpperCase());
arr[i]=tempArr.join('');
}
return '#'+ arr.join('');
}
不明白为什么要Array.prototype.splice.call,楼主能解释一下吗
实现楼主的功能可以用更加直观的方法
var str = "shan de na bian hai de na bian you yi qun da shui bi"
console.log(str);
var strArr = str.split(" ")
var strArrResolved = strArr.map(function(word){
return word.charAt(0).toUpperCase() + word.slice(1)
})
var strResolved = strArrResolved.join(" ");
console.log(strResolved);
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
3 回答1.3k 阅读✓ 已解决
这代码跑得起来吗?
Array.prototype.splice.call
第一个参数你要传个数组进去才行,arr[i]
是个字符串吧。