从项目数组中删除项目

时间:2014-12-22 21:55:03

标签: javascript arrays expression

我有变量/项目列表

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

其中Type,Threshold,TypeID,Prioirty是变量 比方说,他们的值是1,0,2,0,NULL,21

如果变量值为0NULL,我需要从列表中删除/排除它们,并根据非零或非NULL值构建动态变量表达式

在这种情况下,Dynamic Expression = Type>0+TypeID>0+Assign>0(排除了ThresholdPriorityValue个变量,因为它们的值为0NULL

你能帮我吗?

3 个答案:

答案 0 :(得分:1)

在此处过滤:

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

将包含dbTemp;

中的所有非null或零元素

答案 1 :(得分:0)

如果您想根据某些条件进行过滤,而不是仅过滤虚假值:

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

P.S。 NULL!== null

答案 2 :(得分:0)

如果您允许任何虚假值和结果是过滤后的副本,那么这就足够了:

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--;
    }
}