2014-12-22 169 views
0

我的變量列表/項目從項目陣列移除項目

dbTemp = [Type,Threshold,TypeID,Prioirty,Value,Assign] 

其中Type,Threshold,TypeID,Prioirty變數 比方說,他們的價值觀1,0,2,0,NULL,21

如果一個變量值0NULL,我需要從列表中刪除/排除它們,並根據非零或非空值構建動態變量表達式

在這種情況下,Dynamic Expression = Type>0+TypeID>0+Assign>0(不包括ThresholdPriorityValue變量,因爲它們的值是0NULL

能否請你幫我在這裏?

+3

您使用哪種語言? – Barmar

+0

Java腳本...... – Kitcha

+0

什麼是「動態變量表達式」? – Barmar

回答

1

這裏過濾:

var filtered = dbTemp.filter(function(el) { return !!el; }); 

將包含所有非空值或從dbTemp零個元素;

+0

爲什麼你需要'!!'? 'filter'進行自己的真實性測試,它不需要你將值轉換爲布爾值。 – Barmar

+0

如何在沒有函數調用的情況下執行此操作? – Kitcha

0

如果您想根據一些條件(S)來過濾,而不僅僅是過濾falsy值:

var filtered = orignalArray.filter(function(item) { 
    return (item !== condition1) && (item !== condition2); 
}); 

附: !NULL == NULL

0

如果你允許任何falsey價值,因此這是一個過濾的副本,那麼這個就足夠了:

var result = dbTemp.filter(Boolean); 

如果你確實需要變異原和順序並不重要,那麼這樣做:

for (var i = 0; i < dbTemp.length; i++) { 
    if (!dbTemp[i]) { 
     dbTemp[i] = dbTemp[dbTemp.length-1]; 
     dbTemp.length--; 
     i--; 
    } 
} 

如果原來的順序做的事情,那麼這個:

for (var i = 0; i < dbTemp.length; i++) { 
    if (!dbTemp[i]) { 
     dbTemp[i].splice(i, 1); 
     i--; 
    } 
}