[英]How to edit a characters in a string, and remove characters that editing conditions apply to
我試圖從用戶那里獲取一個數字,將數字顯示為一個范圍,然后用字符串替換數字 3 的實例,用字符串替換數字 2 的實例,用字符串替換數字 1 的實例. 如果函數檢測到 3,我希望它用字符串替換它,刪除 3 的實例,並忽略替換 2 和 1 的條件。當它看到 2(但不是 2)時也是如此。
我有函數從用戶那里獲取數字,將其轉換為字符串,然后使用 for 循環將其顯示為范圍。
在 for 循環中,我使用 .includes 來查找“3”。 當它看到一個時,它會將字符串“對不起,戴夫,我不能那樣做”推送到顯示范圍的同一個列表中。
我已經嘗試了一個 if/else if 語句,讓循環忽略 2 和 1 的條件,如果它首先看到一個 3,但是它將所有條件應用於 3,2 或 1 的所有實例。
function numTranslate(inputNumber){
var numList = [];
var num = inputNumber
for (i = 0; i<= num; i++){
var numString = i.toString();
if (numString.includes('3')) {
numList.push("I'm sorry Dave, I can't do that")
}
else if (numString.includes('2')) {
numList.push("boop!")
}
else if (numString.includes('1')) {
numList.push("beep!")
}
numList.push(i)
}
return numList;
}
我得到了什么
輸入:9
輸出:0,beep!,1,boop!,2,對不起,戴夫,我不能那樣做,3,4,5,6,7,8,9,
我想要的是:
輸入:9
輸出:1,2,對不起,戴夫,我不能那樣做,4, 5, 6, 7, 8, 9
如果您想要該輸出,則刪除 1 和 2 的 if 子句。除了那 2 個 if 子句外,您的代碼工作正常。 另外,如果您想忽略 0,請從 1 開始。
另一件事,你到底為什么要把它轉換成一個字符串,然后檢查字符串是否包含字符? 這些是數字,對它們進行數字運算。 您通過轉換它們並檢查轉換來增加不必要的開銷。
function numTranslate(inputNumber){ var numList = []; var num = inputNumber for (i = 1; i<= num; i++){ if(i === 3){ numList.push("I'm sorry Dave, I can't do that"); }else{ numList.push(i); } } return numList; } console.log(numTranslate(9));
這是做這件事的簡單方法。
function numTranslate(inputNumber){ return Array.from(Array(inputNumber), function (value, index) { var i = index+1; if (i== 1 || i==2){ return "beep!"; } if (i== 3){ return "I'm sorry Dave, I can't do that"; } return i.toString() }); } console.log(numTranslate(9))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.