如果索引是具有特定数字的数字(例如“ 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,就好像一切都很好。
答案 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"]