繁体   English   中英

.filter()-如何正确使用val,arr和idx参数的示例?

[英].filter() - example of how to use the val, arr and idx arguments properly?

我正在尝试确定.filter()的工作方式。

我想找到与提供的正则表达式匹配的那些元素,并构建一个newArray而不是这些元素,而是构建一个在原始数组中紧随其后的元素的newArray

以下尝试有什么问题?

function searchNames( logins ){
    var regex =/^\.|\.$/;
    var newArray = logins.filter(function(el,idx,arr){
        if (regex.test(el)) {
            console.log('desired return value is '+arr[idx+1]);
            return arr[idx + 1]; // but I get the original 'el' instead
        }
    });
    console.log(newArray);
}

searchNames([ "foo", "foo@bar.com", "bar", "bar@foo.com", ".foo", "food@bar.com" ]);

网上没有这样的例子吗? 我确定找不到。

您无法通过回调在新数组中return所需的元素。 无论当前元素是否应在结果数组中, filter方法都期望布尔结果 在你的情况下,那将是

var newArray = logins.filter(function(el,idx,arr){
    return idx > 0 && regex.test(arr[idx-1]);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM