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循环可以帮助我,但是我对

我的代码生成一个字符串,如图所示。在每一行的末尾都会显示一个欧元数字,我们将其称为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是新手,我不知道如何继续

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
。您好,请将数据以文本形式添加到您的问题中?非常感谢。