arr.filter(filterCallback(this, newValue));
function filterCallback(this, newValue){
return this !== newValue;
}
上面的代码不起作用,不确定是什么问题。在我尝试拆分功能之前,这是有用的。
arr.filter(function(val){
return val !== newValue;
});
答案 0 :(得分:0)
您可以使用Function.prototype.bind()
通过参数调用filterCallback
,并接收.filter()
callback
的当前元素来比较值。您还可以将this
filterCallback()
次来电设置作为传递给.bind()
的第一个参数
var arr = [1,2,3];
var not = {n:3};
var res = arr.filter(filterCallback.bind(not));
function filterCallback(el){
return this.n !== el;
}
console.log(res); // [1, 2]

答案 1 :(得分:0)
这将有效: -
arr.filter(filterCallback);
function filterCallback(){
return newValue;
}
检查代码段
var ages = [32, 33, 16, 40];
function checkAdult(age) {
return age >= 18;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.filter(checkAdult);
}

<p>Click the button to get every element in the array that has a value of 18 or more.</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
&#13;