2017-10-11 245 views
0

我遇到了問題,我需要查找字母中的字母是真的,哪個是假的。angularjs檢查數組值是否在另一個數組中

我不能更改數組$ available(來自響應)。

的indexOf不起作用,因爲它只着眼於索引值0 & 1,但一定要看值...

任何想法如何解決呢?

這裏我的僞代碼:

var $alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']; 
var $available = [0: 'a', 1: 'b']; 
var $templateglossar = []; 

    angular.forEach($available, function(letter) { 
    if($alphabet.indexOf(letter) > -1) { 
     $templateglossar.push(letter => true); 
    } else { 
     $templateglossar.push(letter => false); 
    } 
    }); 
+0

發表您的除外輸出@Van Fanel – jose

+0

你可以請詳細說明可在$,顯示$可用 –

回答

0

有你的問題有兩個可能的解決方案。

1:

if($alphabet.indexOf($available[letter]) > -1) 

2:

angular.forEach($available, function(key, letter) {...}); 
+1

2幾個要素:解決我的問題感謝 angular.forEach($可用功能(鍵,字母){。 ..}); –

0

注意,您可以同時指定密鑰和一個foreach值,就像這樣:

angular.forEach(objectToIterate, function(value, key) { 
    /* do something for all key: value pairs */ 
}); 
0

或許再看看這個lib(lodash):看看_.difference()方法:

(文檔鏈接)

https://lodash.com/docs/4.17.4#difference 

例如,你的情況是這樣的:

var $alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']; 
var $available = [0: 'a', 1: 'b']; 
var $templateglossar = []; 

$templateglossar = _.difference($alphabet, $available); 

希望它可以幫助你!

+0

不錯的庫,但我不知道如何得到它與角 –

+0

工作只需在您的Index.html中添加我作爲任何ohtner js庫(你不必注入它..但只使用它...很簡單 :-) –

相關問題