Javascript 我需要过滤数组和对象(在下面的过滤函数中使用每个函数)
我需要我的Javascript 我需要过滤数组和对象(在下面的过滤函数中使用每个函数),javascript,foreach,filter,each,higher-order-functions,Javascript,Foreach,Filter,Each,Higher Order Functions,我需要我的filter函数来过滤数组和对象。如何使用过滤器功能中的每个功能来执行此操作?(我很确定我也不允许修改每个。) 问题: 1) 对于任何给定的数组或对象,每个函数产生什么 2) 每个对数组或对象中的每个项执行某些操作。我不确定如何在我的filter函数中使用each,但也会合并我的filter函数的谓词参数来生成我的过滤数组/对象 3) 注意底部的问号。一旦我们完成我的filter函数,对filter的调用会产生什么结果 var myArray = [1,2,3,4]; var myOb
filter
函数来过滤数组和对象。如何使用过滤器功能中的每个功能来执行此操作?(我很确定我也不允许修改每个。)
问题:
1) 对于任何给定的数组或对象,每个
函数产生什么
2) 每个
对数组或对象中的每个项执行某些操作。我不确定如何在我的filter
函数中使用each
,但也会合并我的filter
函数的谓词
参数来生成我的过滤数组/对象
3) 注意底部的问号。一旦我们完成我的filter
函数,对filter
的调用会产生什么结果
var myArray = [1,2,3,4];
var myObject = {
job: "progammer",
age: 50
}
var each = function(collection, callback) {
if (Array.isArray(collection)) {
for (var i=0; i < collection.length; i++) {
callback(collection[i]);
}
} else {
for (var key in collection) {
callback(collection[key]);
}
}
};
var filter = function(collection, predicate) {
var newArr = [];
for (var i=0; i < collection.length; i++) {
if (predicate(collection[i])) {
newArr.push(collection[i]);
}
}
return newArr;
};
filter([1,2,3,4], function(value) {return value > 2;});
// [3,4]
filter(myObject, function(value) {return value.length > 5;});
// ?
var myArray=[1,2,3,4];
变量myObject={
作业:“编程程序”,
年龄:50
}
var each=函数(集合、回调){
if(数组.isArray(集合)){
对于(变量i=0;i2;});
// [3,4]
过滤器(myObject,函数(值){return value.length>5;});
// ?
var r=[];函数x(a){returna>2;}每个(myArray,函数(a){x(a)&&r.push(a);});警报(r)