Write a function called "removeElement".如何返回包含与JavaScript中的给定参数不匹配的元素的数组?
Given an array of elements, and a "discarder" parameter, "removeElement" returns an array containing the items in the given array that do not match the "discarder" parameter.
Notes: * If all the elements match, it should return an empty array. * If an empty array is passed in, it should return an empty array.
我认为这将是解决办法:
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 return an array with all booleans not matching discarder
我想那么这会的工作,因为最初我并没有在条款添加到如果所有数值都等于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应该返回布尔型 – bhspencer
1.'array == []'将始终为false。 2.返回'[]'将被'filter()'函数解释为'true',这意味着当前项不会被排除在结果之外。 –