2015-10-08 64 views
-2

我有以下代碼:的Javascript尋找相同的值在一個循環中

function success() { 
    var currentTitle = SPUtility.GetSPFieldByInternalName('Title').GetValue(); 
    for(var i = 0; i < this.allItems.get_count(); i++){ 
     var item = this.allItems.get_item(i); 
     console.log(item.get_item('Title')); 
    } 

} 

而且我想知道,如果任何項目都有currentTitle相同的值。任何形式的幫助將被親切地讚賞

+0

這兩個'var item ='行有什麼意義?第二個將覆蓋/破壞你在前一個的值... –

+3

'if(curretTitle === item.get_item('Title')){...}'?? –

+0

我真的很抱歉,我已經編輯了這篇文章,並刪除了第二個var = item,這是我的錯誤 – kazzius

回答

-1

試試這個請:

function success() { 
    var currentTitle = SPUtility.GetSPFieldByInternalName('Title').GetValue(); 
    for(var i = 0; i < this.allItems.get_count(); i++){ 
     var item = this.allItems.get_item(i); 
     if(currentTitle == item.get_item('Title')){ 
      return true; // or item 
     } 
    } 
    return false; 
} 

//老答案:如果你用一個數組....工作

如果你想知道是否有項目匹配,則嘗試Array.prototype.some

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some

(取決於你想要什麼樣的瀏覽器支持)

function isBiggerThan10(element, index, array) { 
    return element > 10; 
} 
[2, 5, 8, 1, 4].some(isBiggerThan10); // false 
[12, 5, 8, 1, 4].some(isBiggerThan10); // true 

因此,對於你的情況是這樣的:

allItems.some(function(item){ 
    return item.get_item('Title') == curretTitle; 
}); 

通常人們想找到準確的匹配,是你想要的嗎?

+0

一個不認爲OP正在與一個陣列... – epascarello

+0

啊,謝謝!將更新 – stujo

+0

更新謝謝epascarello! – stujo

相關問題