我是 javascript 新手,正在嘗試撰寫一個函式來計算總分。我有一些需要清理/拆分的輸入文本。
例子:
a, 80newlineb, 50newline
在“換行符”上拆分后的第一個陣列的輸出應該是這樣的:
["a, 80" , "b, 50"]
然后我試圖回圈并創建一個額外的陣列,我可以從中計算總分。像這樣的東西:
function getTotal(input_text)
{
const lines = input_text.split("newline");
var arrayLength = lines.length;
marks_array = [];
for(var i=0; i<arrayLength; i ){
lines[i].split(",");
split = {module:lines[0], mark:lines[1]};
module_marks.push(split);
}
some code
return total_marks;
}
我只真正使用過 php,并認為我將兩種語言合并為一種語言并感到困惑。任何幫助將非常感激!
編輯在這個例子中,答案應該是 130。
uj5u.com熱心網友回復:
在換行符上拆分后,過濾掉空結果,然后以逗號和空格再次拆分。(不僅僅是逗號,因為您只需要右側的數字部分,而不是帶有前導空格的數字。)這將為您提供您正在尋找的第一個結果。然后,使用它,映射到每個中的第二個專案 - 數字部分 - 并將它們全部加起來.reduce。
const input = `a, 80newlineb, 50newline`;
const lines = input
.split('newline')
.filter(Boolean) // remove empty lines
.map(line => line.split(', '));
console.log(lines);
const sum = lines
.map(line => line[1])
.reduce((a, b) => a Number(b), 0);
console.log(sum);
uj5u.com熱心網友回復:
您可以通過多種方式實作這一目標。如果您只需要match使用正則運算式對數字求和以獲取數字陣列,然后遍歷該陣列,將數字添加到新變數中。
注意:您從字串中提取的數字也將是字串,因此您必須將它們強制轉換為數字。您可以map使用陣列.map(Number)回傳一個新的整數陣列,在將數字添加到總數之前添加前綴 ( number),或使用Number建構式。此示例使用前綴方法。
注意 2:我故意遺漏了您想要['a, 80' , 'b, 50']作為輸出的部分,因為不清楚它是否只是您最終結果的墊腳石,或者您是否要將它用于其他用途。如果是后者,您可能需要考慮使用物件來構造該資料。
const str = 'a, 80\nb, 50\n';
const numbers = str.match(/\d /g);
let total = 0;
for (const number of numbers) {
total = number;
}
console.log(total);
uj5u.com熱心網友回復:
您可以使用正則運算式一次將字串拆分為\n和。如果這些數字不是或空字串
,則使用reduce將數字添加到總數中。,NaN
const inputText = "a, 80\nb, 50\n";
const getTotal = (text) =>
text.split(/[\n|,]/).reduce((total, item) => {
return isNaN(item) || item === "" ? total : total parseInt(item);
}, 0);
console.log(getTotal(inputText));
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/503658.html
標籤:javascript 数组 分裂
上一篇:帶引導程式的堆疊卡
