如何编写函数筛选数组中第二个元素非0的项并格式化输出
解决方法
直接用数组的filter和map方法组合就能搞定,步骤如下:
- 筛选符合条件的项:先用
filter过滤掉子数组第二个元素为0的项,判断条件是item[1] !== 0; - 转换格式:再用
map把每个筛选后的子数组转成“单词 - 数字”的格式; - 拼接成目标字符串:最后用
join(', ')把所有项连起来。
完整代码示例(JavaScript)
const originalArr = [ ["oh", 2], ["yes", 2], ["sheet", 2], ["really", 1], ["bro", 1], ["om", 0], ["a", 0], ["to", 0] ]; const result = originalArr .filter(item => item[1] !== 0) // 筛选第二个元素不为0的项 .map(item => `${item[0]} - ${item[1]}`) // 转换格式 .join(', '); // 拼接成字符串 console.log(result); // 输出:oh - 2, yes - 2, sheet - 2, really - 1, bro - 1
为什么你之前的写法会出问题?
你之前写的if arr != 0 return arr没正确定位到子数组的第二个元素,而且如果直接用map处理,不符合条件的项会返回undefined,导致结果混着无效值。先筛选再转换的逻辑更清晰,也不会出现多余的undefined。
内容的提问来源于stack exchange,提问作者Parcurcik
相关产品推荐
相关产品推荐

