Javascript 如何读取每个字符串的最后一个字符?
我的代码生成一个字符串,如图所示。在每一行的末尾都会显示一个欧元数字,我们将其称为euros1和euros2。我们的想法是✓ 图标与每行显示的euros1和euros2相乘。在我的例子中:(10,45+5,50)x2=31,90,第一行,第二行(18,24+9,60)x3=83,52。这些数字加起来应该是115,42 但是,我当前的代码总共生成218,95个。所以它取所有的欧元1和欧元2的总和,然后乘以✓ 图标 如何计算1欧元+2欧元x金额之和✓ 图标,每行 我认为for循环可以帮助我,但是我对Javascript是新手,我不知道如何继续Javascript 如何读取每个字符串的最后一个字符?,javascript,Javascript,我的代码生成一个字符串,如图所示。在每一行的末尾都会显示一个欧元数字,我们将其称为euros1和euros2。我们的想法是✓ 图标与每行显示的euros1和euros2相乘。在我的例子中:(10,45+5,50)x2=31,90,第一行,第二行(18,24+9,60)x3=83,52。这些数字加起来应该是115,42 但是,我当前的代码总共生成218,95个。所以它取所有的欧元1和欧元2的总和,然后乘以✓ 图标 如何计算1欧元+2欧元x金额之和✓ 图标,每行 我认为for循环可以帮助我,但是我对
var temp = g_form.getValue('mwadm_onkosten_list_refList_changes');
var count = (temp.match(/✓/g) || []).length;
var lastChar = temp[temp.length -1];
if (count != temp);
{
total = total * count;
}
我为您提供了一个解决方案,如果可以只按
|
符号拆分字符串,然后获取最后2个值并使用它们执行所有需要的操作
const strArr=['asd | addf |$56.60 |$10.40','asd | addf |$5.60 |$1.40'];
设和=0;
strArr.forEach(str=>{
const splitted=str.split(“|”);
调试器;
const x=getNumber(拆分的[splitted.length-2]);
常数y=getNumber(拆分的[splitted.length-1]);
总和+=(x+y)*2;
});
函数getNumber(str){
return+str.substring(1);
}
console.log(sum)
假设temp
是多行字符串,格式为asd|√|√| €12.34 | €15.25
zxc|√|| 18.34欧元19.25欧元
此代码应给出最后两个数字的总和乘以√
var temp=“asd|√|√| 12.34欧元15.25欧元|√|| €18.34 | €19.25"
让行=临时拆分('\n')
让linesSummaries=[]
for(让行中的行){
var count=line.match(/√/g) .长度
var vars=line.split(“|”)
var x=parseFloat(变量[vars.length-1]。匹配(/\d+\.?\d*/)
变量y=parseFloat(变量[vars.length-2]。匹配(/\d+\.?\d*/)
变量lineSum=(x+y)*计数
linesSummaries.push(lineSum)
}
log(linesSummaries)
我正在考虑一个拆分解决方案,就像上面提到的@dganenco一样。我创建了一个临时变量来重现结果字符串。并对每一行执行一个函数
我故意让它非常简单。希望这有帮助
var temp = ["✓|| €10,45 | €1,50 ", "✓|| €10,45 | €2,50 ", "✓|| €10,45 | €3,50 "];
var totalTimes = (String(temp).match(/✓/g) || []).length;
//perform function for each row
temp.forEach(CalculateRow);
//Splits the row, Gets euro1 as decimal, euro2 as decimal, calculates the amount a character is found, calculates total, prints it to console.
function CalculateRow(item, index) {
var arr = item.split('|');
var euro1 = GetValueFromArray(arr,1);
var euro2 = GetValueFromArray(arr, 2);
var times = (String(arr).match(/✓/g) || []).length;
var _total = (euro1 + euro2) * times;
console.log(_total);
}
//Takes the index value, and casts it to decimal value
function GetValueFromArray(arr, index){
var getindex = arr.length -index;
var result = arr[getindex];
result = result.replace('€', '');
return parseFloat(result, 10);
}
您的图像没有显示…您的数据应该在问题中(以文本形式),而不是图像,我们需要原始输入数据,如temp
。您好,请将数据以文本形式添加到您的问题中?非常感谢。