亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從數組計算器過濾數字

從數組計算器過濾數字

繁星coding 2021-06-09 17:25:16
我正在構建一個計算器并['1','2','+','5','4']從輸入中獲得以下數組,我想將這些數字過濾為[12,'+',54].我將如何在 javascript 中做到這一點?這是我嘗試過的,但這種方法只能過濾掉單數,我想要整數。更新:我想將運算符也保留在數組中。我將如何修復正則表達式?let numbers = [];input.forEach(el => {    if(!isNaN(parseFloat(el) && !isFinite(parseFloat(el))){        numbers.push(el);    }})
查看完整描述

3 回答

?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

您可以join將數組轉換為單個字符串,然后split在任何非數字 ( [^0-9]) 字符上使用 RegEx 。因為輸出將是字符串,所以您需要.map(n=>+n)將它們轉換為整數。


const arr = ['1', '2', '+', '5', '4', '-', '8'];

const result = arr.join('').split(/[^0-9]/).map(n => +n);

console.log(result);

更新:我想將運算符也保留在數組中。我將如何修復正則表達式?


與上面相同,只需將正則表達式包裹在括號中即可形成捕獲組。您還需要對 int ( +n || n)進行條件檢查,因為數組現在具有字符串。


const arr = ['1', '2', '+', '5', '4', '-', '8'];

const result = arr.join('').split(/([^0-9])/).map(n => +n || n);

console.log(result);


查看完整回答
反對 回復 2021-06-24
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

一種方法是join使用match


let arr = ['1','2','+','5','4']


let giveMeDigits = (arr) =>{

  return arr.join('').match(/\d+/g).map(e=> +e)

}


console.log(giveMeDigits(arr))


查看完整回答
反對 回復 2021-06-24
  • 3 回答
  • 0 關注
  • 154 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號