将字符串分成整数并存储总和和平均值
Separating a string into integers and storing sum and averages
JavaScript;我想获取始终具有以下格式但也具有不确定数量的变量的字符串中的值:
示例字符串 "340=5;339=5;338=3;337=4;336=1;335=4;334=4;333=4"
该字符串中的340
、339
、338
等变量存储整数值,如5
、4
、1
等等。我想提取每个变量的整数值(提取等号后的内容)并将它们的总和和平均值存储在两个单独的变量中,如 "sum" 和 "avr".
因为你有一个简单的模式,你可以使用 RegExp 来找到感兴趣的位。这是一个使用 String.prototype.split
and Array.prototype.reduce
的例子
var str = "340=5;339=5;338=3;337=4;336=1;335=4;334=4;333=4";
var parts = (';'+str).split(/;\d+=/).slice(1), // passing the RegExp to .split
sum = parts.reduce(function(prev, cur) {
return prev + +cur; // notice String cur to Number
}, 0),
avr = sum / parts.length; // assuming you want mean average
console.log(sum, avr); // 30 3.75
我会拆分字符串然后遍历所有值以获得总和和平均值。
var str="340=5;339=5;338=3;337=4;336=1;335=4;334=4;333=4";
var array =str.split(/;?\d+=/g);
var sum=0;
for(i=0;i<array.length;i++){
if(!isNaN(parseInt(array[i])))
sum+=parseInt(array[i]);
else{
array.splice(i,1);
i--;
}
}
console.log(sum);
console.log(sum/array.length);
没有什么花哨的,希望它好看且可读。
function calculate(myString) {
var values = myString.split(';');
var sum = 0;
values.forEach(function(el, i) {
sum += parseInt(el.split('=')[1]);
});
return {
sum: sum,
avg: sum / values.length
}
}
var results = calculate("340=5;339=5;338=3;337=4;336=1;335=4;334=4;333=4");
console.log(results.sum); // => 30
console.log(results.avg); // => 3.75
这是简单的字符串评估。你唯一需要的方法是split,你唯一需要的逻辑是for循环。
var values = "340=5;339=5;338=3;337=4;336=1;335=4;334=4;333=4";
var sum = []
var avr = []
values = values.split(';');
for(i=0; i<values.length; i++){
numbers = values[i].split('=')
sum.push(numbers[0])
avr.push(numbers[1])
}
JavaScript;我想获取始终具有以下格式但也具有不确定数量的变量的字符串中的值:
示例字符串 "340=5;339=5;338=3;337=4;336=1;335=4;334=4;333=4"
该字符串中的340
、339
、338
等变量存储整数值,如5
、4
、1
等等。我想提取每个变量的整数值(提取等号后的内容)并将它们的总和和平均值存储在两个单独的变量中,如 "sum" 和 "avr".
因为你有一个简单的模式,你可以使用 RegExp 来找到感兴趣的位。这是一个使用 String.prototype.split
and Array.prototype.reduce
var str = "340=5;339=5;338=3;337=4;336=1;335=4;334=4;333=4";
var parts = (';'+str).split(/;\d+=/).slice(1), // passing the RegExp to .split
sum = parts.reduce(function(prev, cur) {
return prev + +cur; // notice String cur to Number
}, 0),
avr = sum / parts.length; // assuming you want mean average
console.log(sum, avr); // 30 3.75
我会拆分字符串然后遍历所有值以获得总和和平均值。
var str="340=5;339=5;338=3;337=4;336=1;335=4;334=4;333=4";
var array =str.split(/;?\d+=/g);
var sum=0;
for(i=0;i<array.length;i++){
if(!isNaN(parseInt(array[i])))
sum+=parseInt(array[i]);
else{
array.splice(i,1);
i--;
}
}
console.log(sum);
console.log(sum/array.length);
没有什么花哨的,希望它好看且可读。
function calculate(myString) {
var values = myString.split(';');
var sum = 0;
values.forEach(function(el, i) {
sum += parseInt(el.split('=')[1]);
});
return {
sum: sum,
avg: sum / values.length
}
}
var results = calculate("340=5;339=5;338=3;337=4;336=1;335=4;334=4;333=4");
console.log(results.sum); // => 30
console.log(results.avg); // => 3.75
这是简单的字符串评估。你唯一需要的方法是split,你唯一需要的逻辑是for循环。
var values = "340=5;339=5;338=3;337=4;336=1;335=4;334=4;333=4";
var sum = []
var avr = []
values = values.split(';');
for(i=0; i<values.length; i++){
numbers = values[i].split('=')
sum.push(numbers[0])
avr.push(numbers[1])
}