3 回答

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);

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))
添加回答
舉報