You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写函数筛选数组中第二个元素非0的项并格式化输出

解决方法

直接用数组的filter和map方法组合就能搞定,步骤如下:

  1. 筛选符合条件的项:先用filter过滤掉子数组第二个元素为0的项,判断条件是item[1] !== 0;
  2. 转换格式:再用map把每个筛选后的子数组转成“单词 - 数字”的格式;
  3. 拼接成目标字符串:最后用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 04:55:13