国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

對于字符串中連續出現的字母進行遞增,出現的數字進行遞減

Chaz / 2321人閱讀

摘要:例子字符串輸出具體實現找到第一個數字字母出現的位置在字典中的起始位置數字結果處理數字計數標識在字典中的起始位置字母結果處理字母計數標識這種方法不好,各位要是有好的方法請告知

例子:字符串124346564abcd 輸出43 65 abcd

具體實現:

str = "124346564abcd"
var num = str.match(/[0-9]/g)
var letter = str.match(/[a-z,A-Z]/g);

// let numberList = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
let numberList = [9,8,7,6,5,4,3,2,1,0]

let letterList = ["a", "b", "c", "d", "e"]

// 找到第一個數字(字母)出現的位置
function findFirst(arr,num) {
  for (let index = 0; index < arr.length; index++) {
      if (arr[index] == num) { 
        return index
      }
    }
}
let startIndex = 0
if (num.length > 0) {
  // 在字典中的起始位置
   startIndex = findFirst(numberList, num[0])
}

// 數字結果
let numArr = []

// 處理數字
let indexNum = 0
function main(arr) {
  // 計數標識
  let numIndex = 0
  let result = ""
  for (let index = startIndex; index < numberList.length; index++) {
      if (numberList[index] == arr[indexNum]) {
        numIndex ++
        indexNum ++
        result += numberList[index]
      } else if (numIndex >= 2) {
        numArr.push(result)
        result = ""
        startIndex = index
        numIndex = 0
      } else { 
        startIndex = findFirst(numberList, arr[indexNum])
        result = ""
        numIndex = 0
        if (indexNum < arr.length) { 
          main(num)
        }
        break
      }
  }
}


let startIndexLetter = 0
if (letter.length > 0) {
  // 在字典中的起始位置
  startIndexLetter = findFirst(letterList, letter[0])
}
// 字母結果
let letterArr = []
// 處理字母
let indexLet = 0
function mainLetter(arr) {
  // 計數標識
  let numIndex = 0
  let result = ""
  for (let index = startIndexLetter; index < letterList.length; index++) {
    if (letterList[index] == arr[indexLet]) {
        numIndex ++
        indexLet ++
        result += letterList[index]
      } else if (numIndex >= 2) {
        letterArr.push(result)
        result = ""
        startIndexLetter = index
        numIndex = 0
    } else { 
        startIndexLetter = findFirst(letterList, arr[indexLet])
        if (indexLet < arr.length) { 
          mainLetter(letter)
        }
        break
      }
  }
}


if (num && num.length>0) { 
  main(num)
  console.log(numArr);
}

if (letter&&letter.length>0) { 
  mainLetter(letter)
  console.log(letterArr);
}

這種方法不好,各位要是有好的方法請告知

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/104233.html

相關文章

  • 搞定PHP面試 - 運算符知識點整理

    摘要:除法運算符總是返回浮點數。取模運算符的結果和被除數的符號正負號相同。使用位運算符時要特別注意優先級。太空船運算符組合比較符當小于等于大于時分別返回一個小于等于大于的值。遞增遞減運算符不影響布爾值。 一、算術運算符 1. 概覽 例子 名稱 結果 $a + $b 加法 $a 和 $b 的和。 $a - $b 減法 $a 和 $b 的差。 $a * $b 乘法 $a 和 ...

    HelKyle 評論0 收藏0
  • PHP 「自增、自減」運算引發奇怪問題

    摘要:在的官方手冊中寫道支持風格的前后遞增與遞減運算符。第一個注意事遞增遞減運算符不影響布爾值。遞增遞減布爾值遞增遞減在處理字符變量的算數運算時,沿襲了的習慣,而非的。還有一個注意事項遞增遞減其他字符變量則無效,原字符串沒有變化。 在 PHP 的官方手冊中寫道: PHP 支持 C 風格的前/后遞增與遞減運算符。 第一個注意事:遞增/遞減運算符不影響布爾值。遞減 NULL 值也沒有...

    madthumb 評論0 收藏0
  • javascript —— 運算符

    摘要:算術運算符中的算術操作主要通過算術運算符來實現,算術運算符包括一元算術運算符和二元算術運算符兩種。一元算術運算符一元算術運算符用于一個單獨的操作數,并產生一個新值。 算術運算符 javascript中的算術操作主要通過算術運算符來實現,算術運算符包括一元算術運算符和二元算術運算符兩種。 一元算術運算符 一元算術運算符用于一個單獨的操作數,并產生一個新值。在javascript中,一元運...

    Ethan815 評論0 收藏0
  • IntelliJ IDEA 18 周歲,吐血推進珍藏已久必裝插件

    摘要:代碼規約掃描插件以今年年初發布的阿里巴巴開發規約為標準,作為的插件形式存在,檢測代碼中存在不規范得位置然后給予提示。 IntelliJ IDEA是目前最好最強最智能的Java IDE,前幾天,他剛剛年滿18歲。 showImg(https://segmentfault.com/img/remote/1460000017974611);? 本文,給大家推薦幾款我私藏已久的,自己經常使用的...

    趙春朋 評論0 收藏0
  • php易錯筆記-變量,常量,運算符

    摘要:與變量不同,常量不存在可變常量,如果常量名是動態的,也可以用函數來獲取常量的值。執行運算符命令反引號。遞增遞減運算符不影響布爾值。遞增遞減其他字符變量則無效,原字符串沒有變化。不允許用來檢測常量。 變量 基本 引用賦值 global 關鍵字 以下結果在命令行中有效,網頁php中請不要嘗試。。。都是坑。Example #1 使用 global或$GLOBALS 以下為網頁ph...

    Bamboy 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<