MyException - 我的反常网
当时方位:我的反常网» JavaScript » [js] sku结合查找库存数量

[js] sku结合查找库存数量

www.x8vin4.com  网友共享于:2018-06-08  阅读:0次
[js] sku组合查找库存数量
/* 后端数据 */
var data = {
    "10;20;30": {
        price: 5,
        count: 1
    },
    "10;20;31": {
        price: 10,
        count: 2
    },
    "11;20;30": {
        price: 5,
        count: 1
    },
    "10;21;31": {
        price: 10,
        count: 2
    },
    "10;21;32": {
        price: 10,
        count: 9
    }
}
 
var myData = {},
 
    //可选项key值
    keys = [
        [10, 11, 12],
        [20, 21],
        [30, 31, 32]
        ];
 
//获取 key的库存量
 
function getNum(key) {
    var result = 0,
 
        i, j, m,
 
        items, n = [];
 
    //查看是否已计算过
    if (typeof myData[key] != 'undefined') {
        return myData[key];
    }
 
    items = key.split(";");
 
    //已挑选数据是最小途径,直接从已端数据获取
    if (items.length === keys.length) {
        return data[key] ? data[key].count : 0;
    }
 
    //拼接子串
    for (i = 0; i < keys.length; i++) {
        for (j = 0; j < keys[i].length && items.length > 0; j++) {
            if (keys[i][j] == items[0]) {
                break;
            }
        }
 
        if (j < keys[i].length && items.length > 0) {
            //找到该项,越过
            n.push(items.shift());
        } else {
            //分化求值
            for (m = 0; m < keys[i].length; m++) {
                result += getNum(n.concat(keys[i][m], items).join(";"));
            }
            break;
        }
    }
 
    //缓存
    myData[key] = result;
    return result;
}
 
document.write(getNum("10") + ";"); //输出14
document.write(getNum("11") + ";"); //输出1
document.write(getNum("10;21") + ";"); //输出11
document.write(getNum("21;31") + ";"); //输出2​

 

m88 188bet uedbet 威廉希尔 明升 bwin 明升88 bodog bwin 明升m88.com 18luck 188bet unibet unibet Ladbrokes Ladbrokes casino m88明升 明升 明升 m88.com 188bet m88 明陞 uedbet赫塔菲官网 365bet官网 m88 help
188bet www.188bet.com bwin 平博 unibet 明升 188bet uk Ladbrokes 德赢vwin 188bet m88.com w88 平博88 uedbet体育 188bet 188bet 威廉希尔 明升体育app 平博88 M88 Games vwin德赢 uedbet官网 bodog fun88 188bet

文章谈论

软件开发程序过错反常ExceptionCopyright © 2009-2015 MyException 版权所有