如何在JavaScript中筛选能被3整除的数字并统计数量
解决科学计算器的数字筛选问题
嘿,这个需求其实很容易实现,咱们一步步来搞定它:
核心思路
我们需要完成三个关键步骤:
- 从数组里筛选出
value能被3整除的元素 - 提取这些元素的
value值组成集合 - 统计数量并拼接成指定格式的字符串
完整代码实现
const collection = [ { text: "0", value: 0 }, { text: "1", value: 1 }, { text: "2", value: 2 }, { text: "3", value: 3 }, { text: "4", value: 4 }, { text: "5", value: 5 }, { text: "6", value: 6 }, { text: "7", value: 7 }, { text: "8", value: 8 }, { text: "9", value: 9 }, { text: "10", value: 10 }, { text: "11", value: 11 }, { text: "12", value: 12 }, ]; // 1. 筛选符合条件的元素:value能被3整除(包括0) const filteredItems = collection.filter(item => item.value % 3 === 0); // 2. 提取所有符合条件的value值 const divisibleNumbers = filteredItems.map(item => item.value); // 3. 获取数量并拼接结果字符串 const result = `共有${divisibleNumbers.length}个能被3整除的数字:${divisibleNumbers.join(', ')}`; console.log(result); // 输出:共有5个能被3整除的数字:0, 3, 6, 9, 12
代码解释
filter()方法:遍历数组,只保留满足item.value % 3 === 0的元素。这里要注意,0除以3余数为0,所以会被正确包含进去,完全符合你的需求。map()方法:把筛选后的对象数组转换成纯数字数组,方便后续拼接成指定格式的字符串。join(', '):把数字数组转换成用逗号加空格分隔的字符串,和你期望的输出格式完全匹配。- 模板字符串:用
${}语法快速插入变量,让字符串拼接更简洁直观,避免传统的字符串拼接麻烦。
简化版代码
如果想让代码更紧凑,可以把filter和map链式调用,功能完全一样:
const divisibleNumbers = collection.filter(item => item.value % 3 === 0).map(item => item.value); const result = `共有${divisibleNumbers.length}个能被3整除的数字:${divisibleNumbers.join(', ')}`;
内容的提问来源于stack exchange,提问作者Navro
相关产品推荐
相关产品推荐

