2016-06-15 158 views
-1

我已经搜索了这个答案,但没有找到一个很好的例子来说明这个问题。检查For循环中的每个值

我有一个循环:

for (var i=0;i<userProfileProperties.length;i++) { 
    if (userProfileProperties[i].indexOf("ValueImSearchingFor") { 
    console.log("GOTIT"); 
    } 
    } 

我想在循环测试每个值,看它是否包含了某种特定的字母。如果没有,该值可以被降低。我无法得到这个工作。我搜索并找到了例子,但似乎没有做我想做的事情。或者至少我发现没有“工作”的例子。我是新来的JavaScript。因此,如果我的循环中的值正常返回将是:杰克用户1,吉尔用户1和杰里用户2;回到顶端这篇文章中的信息适用于:我想返回的值都是 “用户1”

我不能得到这个工作为:可供阵列

while(userEnumerator.moveNext()){ 
var oUser = userEnumerator.get_current();  
if(oUser.val.indexOf('ValueImsearchingFor') > -1) 
{ ... do this} } 

回答

1

使用Array.prototype.filter()方法如下:

ES5

var res = userProfileProperties.filter(function (val) { 
    return val.indexOf("ValueImSearchingFor") > -1 
}); 

ES6

let res = userProfileProperties.filter((val) => { 
    return val.indexOf("ValueImSearchingFor") > -1 
}); 

let userProfileProperties = [ 
 
    'ValueImSearchingFor 1', 
 
    'ValueImSearchingFor 2', 
 
    'test', 
 
    'ValueImSearchingFor 3', 
 
    'test 1' 
 
    ]; 
 

 
let res = userProfileProperties.filter((val) => { 
 
     return val.indexOf("ValueImSearchingFor") > -1 
 
    }); 
 

 
console.log(res);

+0

会是这样 “userProfileProperties [I] .filter”? – JackSki

+0

否。在数组上调用'.filter'方法。 'userProfileProperties [i]'会给你索引'i'的值。请参阅我已在更新后的工作示例 –

+0

感谢,Aditya,我无法得到此工作“while(userEnumerator.moveNext()){var oUser = userEnumerator.get_current(); if(oUser.val.indexOf ('ValueImsearchingFor')> -1){...做这个}} – JackSki