如何查找包含某个数字的任何数字-例如1323包含数字“ 2”

时间:2019-06-14 20:35:56

标签: javascript jquery

如果索引是具有特定数字的数字(例如“ 1”),则试图替换该索引。例如,414中包含“ 1”,因此请替换为“ oops,no” 1”之类的文本

我有一个程序将数字用作用户输入,并创建一个数组,其中包括直到输入数字(包括输入数字)的所有数字。我有“如果没有”规则来替换有问题的一位数字。不确定如何定位包含给定数字的多个数字。

var one = [1]
var two = [2]
var three =[3]
var userInput = $("#userInput").val();
var arr = [];
for (i=0;i<=userInput;i++) {
  arr.push(i);
  if (three.includes(arr[i])){
    arr.splice(i,1,"I'm sorry, Dave. I'm afraid I can't do that.")
  } else if (two.includes(arr[i])){
    arr.splice(i,1,"Boob!")
  } else if (one.includes(arr[i])){
    arr.splice(i,1,"Beep!")
  }
};

对于13之类的数字,它应该触发包括3之类的数字的规则,但它只会显示13,就好像一切都很好。

3 个答案:

答案 0 :(得分:1)

不确定您的要求是什么。但是也许使用正则表达式和替换将为您提供想法:

"414".replace(/1/,"Sorry no 1s");

这会将414更改为“ 4Sorry no 1s4”

答案 1 :(得分:0)

即使在用输入和输出注释时,仍然不清楚,因为在注释中,如果包含数字..则只需要替换数字,但是在代码中,您试图用字符串替换数字数组。无论如何,下一个函数将让得到数组后,用“问题”字符串替换包含特定数字的数字

var userInput = 24;
var digit = 2;
console.log(ReplaceDigits(userInput , digit));

//--------------------------------------------
// The function
function ReplaceDigits(_userInput , _digit){
  var Arr = [];
  for (i = 0 ; i <= _userInput ; i++) {
    if((i+'').indexOf(_digit) < 0){
      Arr.push(i);
    }else{
      Arr.push('Problem');
    }
  }
  return Arr;
}
//--------------------------------------------
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

如果您要询问(i+''),请看看Best way to check if a number contains another number

答案 2 :(得分:0)

我正在学习JS,并且是Stackoverflow的新手,对不起,如果我错了。

在评论中显示时,userInput的第一位很重要。

var userInput = 24;
var firstDigit = userInput.toString().substr(0,1);
var arr = [];
for (i = 0; i <= userInput; i++) {
  arr.push(i);
  if(firstDigit==='3') {
    if (arr[i].toString().includes('3')) {
      arr.splice(i,1,"I'm sorry, Dave. I'm afraid I can't do that.");
    }
  }
  if(firstDigit==='2') {
    if (arr[i].toString().includes('2')){
      arr.splice(i,1,"Boob!");
    }
  }
  if(firstDigit==='1') {
    if (arr[i].toString().includes('1')){
      arr.splice(i,1,"Beep!")
    }
  }
};
console.log(arr);
//[0, 1, "Boob!", 3, 4, 5, 6, 7, 8, 9, 10, 11, "Boob!", 13, 14, 15, 16, 17, 18, 19, "Boob!", "Boob!", "Boob!", "Boob!", "Boob!"]

我真的希望这是您要寻找的。祝你好运!

编辑: 您也可以这样做!

var userInput = 24;
var firstDigit = userInput.toString().substr(0,1);
var arr = [];
for (i = 0; i <= userInput; i++) {
  arr.push(i);
};
newArr = arr.map(e => e.toString().includes(firstDigit) ? 'problem' : e);
console.log(newArr);
//[0, 1, "problem", 3, 4, 5, 6, 7, 8, 9, 10, 11, "problem", 13, 14, 15, 16, 17, 18, 19, "problem", "problem", "problem", "problem", "problem"]