簡體   English   中英

如何編輯字符串中的字符,並刪除編輯條件適用的字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM