首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript用下划线替换随机字母

javascript用下划线替换随机字母
EN

Stack Overflow用户
提问于 2018-07-06 22:51:18
回答 2查看 641关注 0票数 -1

我想写这个google spreadsheet javascript代码来替换字符串中的随机字母。

我已经创建了一个代码,但不是随机的,而且它还用下划线替换空格(这是有问题的)。

我感兴趣的最终结果是从这个开始(句子是法语顺便说一下):

'J’habite à New York.'

要这样做:

'_’h_b_t_ à _ew _or_.'

假设给定一个句子,至少有一半的字母必须用下划线替换。

谢谢你的帮助。(ps:我不是程序员)

到目前为止,我的代码如下:

代码语言:javascript
复制
var v =  [['J’habite à New York.', 'Sì', ], ['Je m’appelle John. !']]; 

for (var r in v){
  for (var c in v[r]){
    var d = v[r][c];
    var l = d.length; 

    var u = l; 
    while(u > 0){
    var res = d.replace(d[u-2], '_');
    d = res; 
    u = u - 2;
      }
    console.log(res);
      }
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-06 23:04:45

您可以尝试如下所示:)

代码语言:javascript
复制
var a = "Text i want to replace text from";
var splitted = a.split('');
var count = 0; // variable where i keep trace of how many _ i have inserted

while(count < a.length/2) {
   var index = Math.floor(Math.random()*a.length); //generate new index
   if(splitted[index] !== '_' && splitted[index] !== ' ') {
       splitted[index] = '_';
       count++;
   } 
}

var newstring = splitted.join(""); //the new string with spaces replaced

编辑:我现在在控制台上试过了,看起来很好用。它给你带来了什么问题?

2°编辑:你可以这样做:

代码语言:javascript
复制
splitted[index] = ' _ ';

而不是

代码语言:javascript
复制
splitted[index] = '_';

另请注意,我将if条件从:

代码语言:javascript
复制
if(splitted[index] !== '_')

代码语言:javascript
复制
if(splitted[index] !== '_' && splitted[index] !== ' ')

避免将空格替换为“_”

:)

票数 2
EN

Stack Overflow用户

发布于 2018-07-06 22:55:48

你有点太复杂了。只需将字符串转换为字符数组,然后将其映射到替换了某些字母的字符数组,并将其转换回字符串。

代码语言:javascript
复制
function replace(str) {
  return str.split("").map(char => Math.random() > 0.5 ? "_" : char).join("");
}


var v = [
  ['J’habite à New York.', 'Sì', ],
  ['Je m’appelle John. !', 'Non!',]
];


for (const pair of v) {
  pair[0] = replace(pair[0]);
  pair[1] = replace(pair[1]);
}

console.log(v)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51212980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档