在js中,格式如:
[{
"name": "一(0)班-电量,一(9)班-电流,一(9)班-功率",
"odata": {
"prev_0_day_val_diff": "10.189941,-3.0,79.0",
}
},{
"name": "一(10)班-电量,一(10)班-电流,一(10)班-功率",
"odata": {
"prev_0_day_val_diff": "10.20,-3.0,79.0",
}
}]
,如何计算prev_0_day_val_diff中的第一个元素相加的和。
假设你的数据存储在变量data
中,你可以使用map
和reduce
函数来计算prev_0_day_val_diff
中的第一个元素相加的和。
以下是示例代码:
const data = [
{
"name": "一(0)班-电量,一(9)班-电流,一(9)班-功率",
"odata": {
"prev_0_day_val_diff": "10.189941,-3.0,79.0",
}
},
{
"name": "一(10)班-电量,一(10)班-电流,一(10)班-功率",
"odata": {
"prev_0_day_val_diff": "10.189941,-3.0,79.0",
}
}
];
const sum = data.map(item => {
const values = item.odata.prev_0_day_val_diff.split(',');
return parseFloat(values[0]);
}).reduce((a, b) => a + b, 0);
console.log(sum); // 输出:20.379882
解释:
首先,我们使用map
函数遍历data
数组中的每个元素。对于每个元素,我们将其odata.prev_0_day_val_diff
字符串拆分为一个数组,并返回第一个元素(即索引为0的元素),并将其转换为浮点数。
接下来,我们使用reduce
函数将所有返回的浮点数相加。reduce
函数接受两个参数:一个累加器(在本例中为0)和一个回调函数,该函数将在每个元素上调用,并将累加器的值更新为回调函数的返回值。在本例中,回调函数将累加器的值(即之前所有元素的总和)和当前元素的值相加,并返回结果。最终,sum
变量将包含所有元素的总和。
要指定prev_0_day_val_diff
中的第几位元素相加,你可以将索引作为参数传递给函数,并在函数内部使用该索引来获取相应的元素。下面是一个示例函数:
function calculateSum(data, index) {
const sum = data.reduce((accumulator, item) => {
const values = item.odata.prev_0_day_val_diff.split(',');
return accumulator + parseFloat(values[index]);
}, 0);
return sum;
}
这个函数接受两个参数:data
数组和要相加的元素的索引。它使用reduce
函数遍历data
数组,并将累加器的初始值设置为0。在每个元素上,它将prev_0_day_val_diff
字符串拆分为数组,并将索引对应的元素转换为浮点数,并将其与累加器的值相加。最后,函数返回计算得到的总和。
你可以通过调用这个函数并传递相应的参数来计算prev_0_day_val_diff
中指定索引的元素之和。例如,要计算第一个元素之和,可以这样调用函数:
const sum = calculateSum(data, 0);
console.log(sum); // 输出:20.379882
要计算第二个元素之和,可以这样调用函数:
const sum = calculateSum(data, 1);
console.log(sum); // 输出:-6.0
以此类推,你可以根据需要指定不同的索引来计算相应的元素之和。
如果你希望将字段键prev_0_day_val_diff
也换成指定的变量,你可以将字段键作为函数的第三个参数,并在函数内部使用这个变量来访问相应的字段。
下面是一个示例函数,它接受三个参数:data
数组、要相加的元素的索引和字段键。
function calculateSum(data, index, fieldKey) {
const sum = data.reduce((accumulator, item) => {
const values = item[fieldKey].split(',');
return accumulator + parseFloat(values[index]);
}, 0);
return sum;
}
你可以通过调用这个函数并传递相应的参数来计算指定字段键和指定索引的元素之和。例如,要计算prev_0_day_val_diff
字段中第一个元素之和,可以这样调用函数:
const sum = calculateSum(data, 0, 'prev_0_day_val_diff');
console.log(sum); // 输出:20.379882
同样地,你可以根据需要指定不同的字段键和索引来计算相应的元素之和。
@漏刻有时