javascript - 完成一个函数,输入字符串和注释规则数组,剔除注释规则后返回字符串
黄舟
黄舟 2017-04-11 11:48:05
[JavaScript讨论组]

input :

apples, pears # and bananas
grapes
bananas !apples

output

apples, pears
grapes
bananas

var result = solution("apples, pears # and bananas\ngrapes\nbananas !apples", ["#", "!"])

// result should == "apples, pears\n grapes\n bananas"

我是这样写的,哪里不对了,还有更好的方法也行

function solution(input, markers){
 var test= input.split("\n");
 var len=markers.length ,strlen=test.length;
   for(var i=0;i
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(1)
ringa_lee

因为你改的是参数值啊,而且你可以把参数值给重写覆盖掉了。为什么test数据没有改变,请参阅这个:js 中参数是按值传递的,但声明对象时又是引用指向某个对象的,该怎么理解?

代码修正,很简单,把你的forEach换成map就行了,而且注意你的原代码里item既是参数,又被你var了一次,小小的细节请注意,coding坏习惯要改:

function solution(input, markers){
    var test= input.split("\n");
    var len=markers.length ,strlen=test.length;
    for(var i=0;i<len;i++){
        test = test.map(function(item){
            return item.split(markers[i])[0];
        });
    }
    return test;
}
console.log(solution("apples, pears # and bananas\ngrapes\nbananas !apples",["#","!"]))//["apples, pears ", "grapes", "bananas "]
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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