javascript - js call()的传参问题 //codewars上遇到的题目
怪我咯
怪我咯 2017-04-10 16:35:58
[JavaScript讨论组]

今天在codewars上遇到了这样一个问题,不要脸的我又来问答案了,哈哈。。

下面是我写的答案:

运行后:

好像我的首字母没有转换过来!我觉得应该是call()的传参出的问题,可是我单独打印变量n时,它已经是大写了,还是我继承数组的原型对象时出错了。实在不知是那个地方出了问题,特来求助!!!!求大神指点。

谢谢大家,问题解决了。。贴上一个别人通过的代码。。

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
PHPz

这代码跑得起来吗?
Array.prototype.splice.call第一个参数你要传个数组进去才行,arr[i]是个字符串吧。

PHPz

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);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号