Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我需要过滤数组和对象(在下面的过滤函数中使用每个函数)_Javascript_Foreach_Filter_Each_Higher Order Functions - Fatal编程技术网

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)