filter过滤器和reduce求和以及
1. filter()过滤器
filter()
是 JavaScript 数组的一个方法,而不是 Vue.js 或 UniApp 特有的过滤器。filter()
方法用于创建一个新数组,其包含通过所提供函数实现的测试的所有元素。
<template>
{{sum}}
</template>
<script setup>
import {
computed,
ref
}} from 'vue';
// 初始化一个包含一组数字的响应式数组
const numbers = ref([1, 2, 15, 20, 25, 30, 5]);
// 计算总和
// 根据numbers数组中大于5的项来计算总和
var sum = computed(() => {
// 过滤出数组中大于5的项
let count = numbers.value.filter(item => item > 5);
// 初始化一个用于累加的变量
let sum = 0;
// 遍历过滤后的数组,累加其值
count.forEach((item, index) => {
console.log(index);
sum += item
})
// 返回计算后的总和
return sum;
})
</script>
<style scoped>
.container {
padding: 20rpx;
}
</style>
2. reduce()计算总和
const calculateTotal = () => {
total.value = numbers.value.reduce((sum, item) => sum + item, 0);
};
reduce
方法用于将数组中的元素通过一个函数处理后归约为单个值。- 这里
(sum, item) => sum + item
是回调函数,接收两个参数:累积器sum
和当前元素item
。 - 初始值
0
作为sum
的起始值。 - 对
numbers.value
中的每个元素执行加法操作,得到总和。 - 最终结果赋值给
total.value
。