我试图找到一种方法来读取每一行(如下所述),并在'='之后加上值。
NumberOfCores=4
NumberOfLogicalProcessors=4
NumberOfCores=4
NumberOfLogicalProcessors=4
NumberOfCores=4
NumberOfLogicalProcessors=4
我在寻找什么? 脚本应该能够读取包含“ NumberOfLogicalProcessors”的每一行,并给出加法数字的数字输出(在这种情况下为“ 12”)。
我到目前为止编写的代码:
var lines= abovelines.split('\n');
for(var i = 0;i <lines.length;i++){
console.log(lines[i]);
}
答案 0 :(得分:0)
您已经找到了如何通过换行符分割来获取每一行的方法。现在,您要做的就是用=
符号将每一行分开。像这样:
var lines= abovelines.split('\n');
var sum = 0;
for(var i = 0;i < lines.length; i++){
var lineSplit = lines[i].split("=");
if (lineSplit[0] === 'NumberOfLogicalProcessors') {
sum += (+lineSplit[1]);
}
}
console.log('Total NumberOfLogicalProcessors ' + sum);
此语句+lineSplit[1]
正在将字符串数字转换为数字数据类型。
答案 1 :(得分:0)
这是一个工作示例:
const txt = `NumberOfCores=4
NumberOfLogicalProcessors=4
NumberOfCores=4
NumberOfLogicalProcessors=4
NumberOfCores=4
NumberOfLogicalProcessors=4`;
const lines = txt.replace(/(^[ \t]*\n)/gm, "").split('\n');
const result = {};
for(const line of lines) {
const [text, value] = line.split("=")
result[text] = (result[text] || 0) + parseInt(value)
}
console.log('All key values: ', result)
console.log('Number of Cores: ', result['NumberOfCores'])
console.log('Number of Procesors: ', result['NumberOfLogicalProcessors'])
这里拥有所有键值,并且如果需要,您可以按键访问特定的键值,如下所示:
result['NumberOfLogicalProcessors']
或
result['NumberOfCores']
答案 2 :(得分:0)
var NumberOfLogicalProcessors = 0;
for (var i = 0; i < lines.length; i++)
{
var newArray = lines[i].split('=');
if (newArray.length > 1 && newArray[0] == 'NumberOfLogicalProcessors')
{
NumberOfLogicalProcessors = NumberOfLogicalProcessors + parseInt(newArray[1]);
}
}
console.log(NumberOfLogicalProcessors);
答案 3 :(得分:0)
正则表达式似乎适合您的用例。
let input = `NumberOfCores=4
NumberOfLogicalProcessors=4
NumberOfCores=4
NumberOfLogicalProcessors=4
NumberOfCores=4
NumberOfLogicalProcessors=4`;
let sums = input
.match(/\w+=\d+/g)
.map(a => a.match(/(?<key>\w+)=(?<value>\d+)/).groups)
.reduce((sums, {key, value}) => {
sums[key] = (sums[key] || 0) + parseInt(value);
return sums;
}, {});
console.log(sums);
console.log(sums.NumberOfLogicalProcessors);
答案 4 :(得分:0)
使用正则表达式似乎是个好习惯,(语法值得商)):
const string = `NumberOfCores=4
NumberOfLogicalProcessors=4
NumberOfCores=4
NumberOfLogicalProcessors=4
NumberOfCores=4
NumberOfLogicalProcessors=4`;
const regEx = /(?:NumberOfLogicalProcessors)\s?=+\s?([0-9])/g
let result = 0;
for ( const match of string.match( regEx ) ) {
result += Number( regEx.exec( match )[ 1 ] );
regEx.lastIndex = 0; // reset index for next iteration
}
console.log( result );