用户定义的数据分类规则

时间:2014-04-26 13:23:13

标签: javascript

假设我们有三个不同的类别,买入卖出

我们希望能够将“stock”对象数组传递给一个函数,其中对象具有属性,例如

var stocks = [  
{ticker: BACON, industry: food , isTech: true, isGreen: false, isIntl = true, is52weekHigh: true},
{ticker: PEE, industry: plumbing, isTech: true, isGreen: true, isIntl = true,    is52weekHigh: false},
{ticker: BEER, industry: beverage, isTech: true, isGreen: true, isIntl = true,    is52weekHigh: true},

该函数应该应用用户设置的规则,将每个股票分类为三个类别中的一个,即买入卖出。

规则很简单:这个或那个,这个或那个,但不是那个。

E.g。 购买: 条件1:(isTech = true且isIntl = true且自动收报机不等于PEE) 要么 标准2 :(工业=饮料或工业=食品)

不确定如何接近它!任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

如果要从受限制的UI构建逻辑,那么使用eval应该是安全的。

我在Firefox的Scratchpad中运行了以下内容。

注意: - 在每个对象中使用字符串而不是变量用于BACON,食物等,需要替换= with:afterIntl之后

   var stocks = [  
        {ticker: 'BACON', industry: 'food' , isTech: true, isGreen: false, isIntl : true, is52weekHigh: true},
        {ticker: 'PEE', industry: 'plumbing', isTech: true, isGreen: true, isIntl :true,    is52weekHigh: false},
        {ticker: 'BEER', industry: 'beverage', isTech: true, isGreen: true, isIntl : true,    is52weekHigh: true}
    ]

    for(var i=0;i<stocks.length;i++) {
        stock=stocks[i];
        console.log(eval((stock['isTech'] && stock['isIntl'] && stock['ticker'] != 'PEE') || (stock['industry']=='beverage' || stock['industry']=='food')));
    }