2016-06-15 127 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