2014-04-09 72 views
0

我有以下Javascript函數,其中參數newValue和oldValue是整數數組和相同長度。這些數組中的任何值可以是整數,未定義或爲空:如何通過比較Javascript中的值來循環兩個數組?

function (newValue, oldValue) { 


}); 

是否有某種方式,我可以在一個時間一個元素檢查陣列中的值,然後做只有一個動作:

newValue[index] is >= 0 and < 999 
oldValue[index] is >= 0 and < 999 
newValue[index] is not equal to oldValue[index] 

我什麼不知道的是我可以在我的檢查處理,並忽略情況下NEWVALUE或屬性oldValue不爲空,而不是不確定的?我知道我可以,如果(NEWVALUE)在做了檢查,但那麼這將讓假當它是一個0

更新:

我有幾個簡單的答案,但迄今爲止沒有一個是檢查權上面列出的東西。

+0

[在JavaScript中檢測未定義的對象屬性]的可能重複(http://stackoverflow.com/questions/27509/detecting-an-未定義的對象屬性,在JavaScript的) – Bergi

回答

1

這將做到這一點:

function isEqual (newValue, oldValue) { 
    for (var i=0, l=newValue.length; i<l; i++) { 
     if (newValue[i] == null || newValue[i] < 0 || newValue[i] >= 999 
     || oldValue[i] == null || oldValue[i] < 0 || oldValue[i] >= 999) 
      continue; 
     if (newVale[i] !== oldValue[i]) 
      return false; 
    } 
    return true; 
} 
2

比較針對nullundefined

if (newValue[index] !== null && typeof newValue[index] !== 'undefined') {} 

爲OP的更新:

n = newValue[index]; 
o = oldValue[index]; 

if (
    n !== null && typeof n !== 'undefined' && n >= 0 && n < 999 && 
    o !== null && typeof o !== 'undefined' && o >= 0 && o < 999 
) { 
    // your code 
} 

數組元素使用typeof所以n !== undefined是確定,因爲該變量會存在其不是必需的。

n = newValue[index]; 
o = oldValue[index]; 

if (
    n !== null && n !== undefined && n >= 0 && n < 999 && 
    o !== null && o !== undefined && o >= 0 && o < 999 && 
    n !== o 
) { 
    // your code 
} 
+1

我不能完全肯定,但我認爲這是相當於測試'NEWVALUE [指數]!= NULL)' –

+0

未定義===「未定義」 //假 –

+1

的typeof不確定= =='undefined' – phylax

0
if (newValue != null || newValue != undefined) && (oldValue != null || oldValue != undefined) 
相關問題