js实现分别替换

问题描述

分别将数组的内容放到字符串的横线上
arr=[1,5,7];
str='你说啥____哈哈哈_____不知道_____'

问题出现的环境背景及自己尝试过哪些方法

在做填空题哇

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

str1=你说啥1哈哈哈5不知道7

阅读 2.3k
3 个回答
var idx=0;
str = str.replace(/\_+/g,()=>{return arr[idx++];})
// 如果你下划线是固定数量那么直接用那个分割就行,我看你给的例子里数量不一致
str.split('_').filter(_ => _ !== '')
    // 如果 arr[i] 不存在,即空格处没有可以替换的文字,那么就空字符代替
    .map((_, i) => `${_}${arr[i] || ''}`).join('')

补充提问:请问是用数组中的内容迭代替换掉字符串里的横线,还是将内容放置于横线之上?
这样吧:

    var arr = [1,5,7];
    var str='你说啥___哈哈哈___不知道___';
    var newStr = new String()
    str.split("_").filter(i => i).map((v, i) => {
        newStr += v + arr[i]
    })
    console.log(newStr)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题