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
。