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
使用.filter()方法-JavaScript返回多个项目_Javascript_Arrays_Filter - Fatal编程技术网

使用.filter()方法-JavaScript返回多个项目

使用.filter()方法-JavaScript返回多个项目,javascript,arrays,filter,Javascript,Arrays,Filter,如果我有一个包含一组数字的数组,并且希望使用.filter方法删除某些数字,那么我知道在需要删除单个项目(或者如果我可以使用数学表达式)时如何执行此操作,但无法让它仅根据其值或在数组中的位置来处理多个项目 在下面的代码中,我希望新的数组选择返回数字10、12、15 另外,我只需要使用filter()方法就可以了 JS 您可以使用包括: let random=[4,10,12,15,30,10,10,12,5]; let selection=random.filter(函数(num){ 变量良好

如果我有一个包含一组数字的数组,并且希望使用.filter方法删除某些数字,那么我知道在需要删除单个项目(或者如果我可以使用数学表达式)时如何执行此操作,但无法让它仅根据其值或在数组中的位置来处理多个项目

在下面的代码中,我希望新的数组选择返回数字10、12、15

另外,我只需要使用filter()方法就可以了

JS


您可以使用
包括

let random=[4,10,12,15,30,10,10,12,5];
let selection=random.filter(函数(num){
变量良好=[10,12,30]
返回良好。包括(num);
});

console.log(selection)
如果我没有正确理解,请原谅,但是如果您要查找的是根据项的索引筛选数组,则可以使用传递到
筛选器
方法回调的第二个参数,即
索引
let random=[4,10,12,15,30];
let selection=random.filter(函数(num,index){
返回索引>0&&index<4;
});

控制台日志(选择)如果我理解您的问题,您需要一个接受数组的函数,请检查元素是否在较大的数组中,如果在较大的数组中,请删除它们

过滤器可能不是您在这里的最佳选择,因为它不会改变原始数组,它只生成一个新数组。尝试使用拼接

let random=[4,10,12,15,30];
函数删除(数组){
对于(var i=0;iconsole.log(随机);//[4,15]
您确实需要在使用筛选器时返回true或false的条件,因此使用筛选器方法执行此操作的最简单方法是:

let random = [4, 10, 12, 15, 30];
let selection = random.filter(function(num){

if (num > 4 && num < 16) {return true};

});
let random=[4,10,12,15,30];
let selection=random.filter(函数(num){
如果(num>4&&num<16){return true};
});

另一种方法是按数组中的位置进行过滤,这可以通过其他数组方法更好地实现。

在切换时读取大小写机制
return[10,12,30]。包括(num)
[10,12,30].indexOf(num)>-1
如果要返回10,12,15,为什么示例会显示10,12,30?您希望筛选出哪组数字?它们有一个共同的链接吗?我想说的是,如果你已经知道你想要什么值,为什么还要从更长的数组中筛选它们呢。只需使用这些值设置一个新数组。
let selection=random.slice(1,4)@4castle也可以使用。:)虽然上面的代码比一个简单的、可信的切片允许更多的控制,但是如果您可以简单地使用:
var good=[10,12,30]
,那么过滤掉它们又有什么意义呢?这不是你的代码的问题,而是一般的问题。@Andy-不确定重点是什么。我可以想象一个场景,有一个大的输入数组和几个“好”值。想象一下,比如说一个大的动物阵列和一个小的哺乳动物阵列。现在我想过滤我的大数组,只返回由我的小数组定义的哺乳动物(或者一些不那么做作的例子:),但这就是我的观点。只有在现有哺乳动物列表可供参考的情况下,才能筛选出这些哺乳动物。如果你有这个清单,为什么还要努力呢?这里已经很晚了。也许我应该放下笔记本电脑:)@Mark\M如果是这样的话,那么你就不知道要检查
包含的数组,所以这个答案不适用。安迪说的是,如果OP已经知道所有的值,为什么不直接使用它们呢?如果OP不知道它们,那么这个答案将毫无帮助。@Li357我更新了我的答案,因此更清楚的是,这与返回筛选条件不同。
let random = [4, 10, 12, 15, 30];
let selection = random.filter(function(num){

if (num > 4 && num < 16) {return true};

});