我在使用javascript按位時遇到問題。我不知道我是否以這種錯誤的方式去做。但是在這裏。Javascript按位問題
我有4個主要類別。用ID 1,2,4,8。
我的對象中的某個項目具有屬於它所屬的類別總數的屬性。即。
{ item: { name: 'lorem', c: 7 }} //member of category 1,2,4
我有一個變量(n),它包含活動類別的總數。在這種情況下,如果所有類別的活動數是15.
現在,如果我將n更改爲11(類別1,2,8是活動的),我試圖確定哪些項目是活動的。像這樣
for (x in items) {
item = items[x];
if ((n & item.c) == item.c) {
//active
} else {
//inactive
}
}
這不能正常工作。例如,如果item.c是9(1.8的成員),if語句將返回true。正如它應該。但是如果item.c是7(1,2,4的成員),if語句返回false。這是我的問題。 7應該返回true,因爲類別1和2仍然有效。
或者這是錯誤的方法?
..fredrik
旁白:忌'爲... in'的迭代陣列,它不會做你期望什麼。如果你不關心你獲得物品的順序,它可能在這裏工作,但如果有人擺弄Object Object原型,它也會炸燬。堅持用舊的C'for(var i = 0; i
bobince
2009-11-28 12:23:47
謝謝。但是這是從服務器端加載的JSON對象。 而關於舊學校的循環。您應該將長度設置爲var。由於每個循環它執行我看數組,然後長度。特別是如果你必須計算長度。 var i,l = items.length; for(i = 0; i
fredrik
2009-11-28 14:03:18