拆分过滤回调函数

时间:2016-11-15 03:55:46

标签: javascript function callback

arr.filter(filterCallback(this, newValue));

function filterCallback(this, newValue){
   return this !== newValue;
}

上面的代码不起作用,不确定是什么问题。在我尝试拆分功能之前,这是有用的。

arr.filter(function(val){
    return val !== newValue;
});

2 个答案:

答案 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;
&#13;
&#13;