【发布时间】:2017-10-06 10:48:23
【问题描述】:
编写一个名为“removeElement”的函数。
给定一个元素数组和一个“discarder”参数, “removeElement”返回一个包含给定项目的数组 与“discarder”参数不匹配的数组。
注意事项: * 如果所有元素都匹配,它应该返回一个空数组。 * 如果传入一个空数组,它应该返回一个空数组。
我认为这将是解决方案:
function removeElement(array, discarder) {
var newarr = array.filter(function(cv, i, a){
if (array == []) {
return [];
} else if (cv != discarder ) {
return cv;
}
});
return newarr;
}
但我收到此错误:
return_an_array_with_all_booleans_not_matching_discarder 返回一个所有布尔值都不匹配的数组
我认为这会起作用,因为最初我没有添加子句来考虑是否所有值都等于丢弃器。
function removeElement(array, discarder) {
var newarr = array.filter(function(cv, i, a){
if ((array == []) || (cv == discarder)) { // added this expression to evaluate.
return [];
} else if (cv != discarder ) {
return cv;
}
});
return newarr;
}
【问题讨论】:
-
array.filter 应该返回一个布尔值
-
1.
array == []永远是假的。 2. 返回[]将被filter()函数解释为true,这意味着当前项目不会被排除在结果之外。
标签: javascript arrays