使用.filter()方法-JavaScript返回多个项目
如果我有一个包含一组数字的数组,并且希望使用.filter方法删除某些数字,那么我知道在需要删除单个项目(或者如果我可以使用数学表达式)时如何执行此操作,但无法让它仅根据其值或在数组中的位置来处理多个项目 在下面的代码中,我希望新的数组选择返回数字10、12、15 另外,我只需要使用filter()方法就可以了 JS使用.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){ 变量良好
您可以使用
包括
:
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;i console.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};
});