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

如何使用三元运算符实现自定义Array.filter数组方法?

实现方案

你只需要将//???替换为null即可,同时需要在方法开头补充空数组newArray的初始化逻辑,否则运行时会报变量未定义错误。

完整可运行代码

const s = [23, 65, 98, 5];

Array.prototype.myFilter = function(callback) {
  // 新增初始化空数组的逻辑
  const newArray = [];
  this.forEach(a => callback(a) === true ? newArray.push(a) : null)
  return newArray;
};

var new_s = s.myFilter(function(item) {
  return item % 2 === 1;
});

补充说明

  • 三元运算符要求条件成立和不成立的分支都要有对应返回值,不需要执行操作的分支填入null是最简洁的写法,替换为undefined、void 0效果完全一致
  • 你现有代码中的callback(a) === true可以简化为callback(a),因为filter的规则是只要回调返回真值就保留元素,不需要严格等于布尔值true,原有写法逻辑也没有问题。

内容的提问来源于stack exchange,提问作者untitiledunmastered

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:00:03