【发布时间】:2021-07-09 22:05:49
【问题描述】:
我遇到了麻烦
任务 6:随着企业希望为其添加越来越多的口味 阵容,他们已经意识到他们需要根据 风味名称,而不是随意删除第一个或 最后的味道。您的任务是按风味名称获取索引,然后删除 数组中的单一风味。
使用下面的 removeFlavorByName 函数执行以下操作:
1. Receive an array 2. Receive a flavor as a string 3. Remove the received flavor from the received array 4. Return the resulting array that now contains one less flavor例如:运行
removeFlavorByName(originalFlavors, "Rocky Road")将返回一个长度为 30 的数组 因为Rocky Road会被删除。提示:您可以为此使用
.splice()
这是我的代码:
function removeFlavorByName(array, str){
if (array.includes(str)) {
let string = array.indexOf(str);
array.splice(string, 1);
}
return array
}
谁能告诉我如何在不使用 indexOf 的情况下做到这一点?我相信 Lamda 学校正在使用的测试软件希望我们只使用基本的东西,因为即使它有效,它也无法通过他们的 npm 测试。
【问题讨论】:
-
你可以使用 array.filter 或者最基本的方法是创建一个不包含
str的新数组 -
就我个人而言,我不会执行包含步骤。在进行拼接之前,我只会检查 -1。我猜你是在学习循环,他们想让你循环???
-
indexOf是基本的东西——我怀疑他们会希望你使用splice而不是indexOf。你能告诉我们失败测试的测试结果/输出吗?您的代码看起来非常好(除了一些优化潜力,以及处理NaN的边缘情况)。 -
说明中特别提到“按风味名称获取索引”。他们禁止使用
indexOf()是没有意义的。
标签: javascript arrays function indexing