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

JavaScript数组非重复添加元素时push返回值异常问题咨询

问题根因

你代码返回数字的核心原因是对push()方法的返回值理解有误:
Array.push() 执行后会直接修改原数组,但它的返回值是添加元素后数组的新长度,不是修改后的数组本身。
比如你调用add([1,2], 3)时,push执行完数组确实变成了[1,2,3],但push的返回值是数字3,你直接return这个返回值,自然拿不到预期的数组结果。
另外你的代码还存在一处语法疏漏:if-else代码块缺少闭合的右花括号},运行时也可能触发异常。

修正后的实现

只需要调整逻辑:执行push操作修改数组后,不要返回push的结果,而是返回修改后的数组本身即可。

function add(Sarray, nosarray) {
  // 仅当元素不存在时执行添加
  if (Sarray.indexOf(nosarray) === -1) {
    Sarray.push(nosarray);
  }
  // 统一返回最终的数组
  return Sarray;
}

代码验证:

  • 执行add([1, 2], 3):3不在原数组中,push添加后返回[1, 2, 3],符合要求
  • 执行add([1, 2], 2):2已存在,不执行添加,直接返回原数组[1, 2],符合要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 05:54:16