在JavaScript中对多维数组使用过滤器方法
Use filter method on multidimensional arrays in JavaScript
有一个多维数组,我想过滤它,所以只有有一个以下划线'_'结尾的词的数组被留下。我已经使用循环完成了这个任务。
function searchNames( logins ){
var arr = logins;
var reg = /'w+_'b/;
var newAr = [];
for(var i = 0; i < arr.length; i++) {
for(var x = 0; x < arr[i].length; x++){
if(arr[i][x].match(reg)){
newAr.push(arr[i])
}
}
}
return newAr;
}
是否有办法做到同样的使用Array.prototype.filter()方法。根据MDN参考(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)你可以做类似的事情,但我不知道如何过滤数组内的数组。我尝试在另一个过滤器方法中使用过滤器方法的所有尝试都失败了
给filter方法传递一个有用的block:
array = [["hello_","cat"],["dog","dog"]];
arrayTest = function(arr){
resp = false;
arr.forEach(function(str){
if(str.slice(-1) === "_") resp = true;
});
return resp;
}
result = array.filter(arrayTest);
或者如果你真的嫁给了你的正则表达式:
array = [["hello_","cat"],["dog","dog"]];
regex = /'w+_'b/;
arrayTest = function(arr){
resp = false;
arr.forEach(function(str){
if(str.match(regex)) resp = true;
});
return resp;
}
result = array.filter(arrayTest);
你似乎想
var newArr = arr.filter(subArr => subArr.some(e=>/'w+_'b/.test(e)));
相关文章:
- 有没有一种方法可以创建到同位素过滤器的直接链接
- 使用过滤器映射多点数据集的最佳方法是什么
- JavaScript 过滤器方法返回过滤数组和空数组
- 我可以在 jQuery 过滤器方法上使用多选择器表达式吗?
- free-jqgrid:保存、加载和应用过滤器数据的更简单方法,包括过滤器工具栏文本和页面设置
- 余烬过滤内容并在过滤器中使用控制器方法
- 用于多种类型的过滤器的 jQuery grep 方法
- 用于ng重复的多个角度过滤器 - 有没有更好的方法
- 如何从纯JavaScript方法调用AngularJS过滤器
- 如何在AngularJS中使用方法作为过滤器
- Angularjs-将变量发送到纯JavaScript函数并返回orderBy过滤器的正确方法
- 如何在SAILJS的API REST中使用方法过滤器搜索
- AngularJS中不同的过滤器方法"ng-repeat"不起作用
- 链接collection_select菜单选项到一个过滤器方法——Ruby on Rails
- JS过滤器方法在赋值给变量时返回一个空数组
- 如何在过滤器方法的回调函数中使用for循环
- 从lodash过滤器方法返回选择器的val()
- 如何通过使用选择将D3选区划分为组.循环中的过滤器方法
- Javascript 过滤器方法不适用于 if 和 else if
- 在JavaScript中对多维数组使用过滤器方法