JS如何编写向空数组添加元素的函数?addIngredients单测不通过求助
问题排查与修复方案
当前代码存在的问题
- 参数定义不匹配:测试调用
addIngredients时传入了两个参数(第一个是待添加的食材字符串,第二个是目标数组),但你的函数只定义了1个参数,没有正确接收两个入参。 - 变量名冲突覆盖入参:函数内部重新声明了同名变量
ingredients并赋值为空数组,直接覆盖了外部传入的目标数组,后续操作的是你新建的局部空数组,完全不会影响外部传入的数组。 push方法未传值:调用push时没有传入要添加的食材内容,不会往数组里加入任何元素。- 多余的错误调用:你手动写的
addIngredients("cheese")调用既没传目标数组,也不需要额外编写,单元测试会自动调用函数执行逻辑。
正确实现代码
function addIngredients(ingredientName, ingredients) { ingredients.push(ingredientName); }
修复说明
- 调整参数定义,第一个参数接收待添加的食材名称,第二个参数接收要操作的目标数组
- 删除内部多余的
var ingredients = []声明,直接操作外部传入的数组(JS数组是引用类型,修改传入的数组会直接改变原数组,不需要return也能满足测试要求) - 给
push方法传入要添加的食材名称,完成元素新增操作
内容的提问来源于stack exchange,提问作者andrew c
相关产品推荐
相关产品推荐

