Javascript中的条件数组

时间:2017-02-14 10:49:52

标签: javascript

code1,code2和Code3是常量,而code1quantity,code2quantity值来自屏幕

如果我没有得到数量的价值,那么代码也不应该添加到数组

条件1:

var Code1  = 'xyz';
var Code2  = 'abc';
var Code3  = 'mno';

var Code1Quantity  = 1;
var Code2Quantity  = 2;
var Code3Quantity  = 3;

var data = {
       Codes :  [{'code':Code1,'Quantity':Code1Quantity},
                 {'code':Code2,'Quantity':Code2Quantity},
                 {'code':Code3,'Quantity':Code3Quantity}
               ]
             }

需要实现条件2:

var Code1  = 'xyz';
var Code2  = 'abc';
var Code3  = 'mno';

var Code1Quantity  = 1;
var Code2Quantity  = 0;
var Code3Quantity  = 1;

var data = {
       Codes :  [{'code':Code1,'Quantity':Code1Quantity},
                 {'code':Code3,'Quantity':Code3Quantity}
               ]
             }

如果Code2Quantity为零,我们也不应该添加code2,因为代码数量值是从屏幕中选择的,它可能有也可能没有值

如何实现?

2 个答案:

答案 0 :(得分:1)

您可以使用下面的过滤函数处理数组

var data = {
    Codes :  [{'code':Code1,'Quantity':Code1Quantity},
        {'code':Code2,'Quantity':Code2Quantity},
        {'code':Code3,'Quantity':Code3Quantity}
    ].filter(code => code.Quantity > 0)
}

答案 1 :(得分:1)

您可以收集数组中的所有项目,使用对象构建数组并按数量过滤。

var Code1  = 'xyz',
    Code2  = 'abc',
    Code3  = 'mno',
    Code1Quantity  = 1,
    Code2Quantity  = 0,
    Code3Quantity  = 1,
    codes = [Code1, Code2, Code3],
    quantity = [Code1Quantity, Code2Quantity, Code3Quantity],
    data = { 
        Codes: codes.map(function (c, i) {
                return { Code: c, Quantity: quantity[i] };
            }).filter(function (o) {
                return o.Quantity;
            })
    };

console.log(data);