相邻算法

参照“猫眼电影”购票选座规则:

/*
* 影院选座验证
* param {Array} arr
* param {Object} options.ok验证成功回调函数,options.cancel验证失败回调函数
* return {Boolean} 验证成功返回true,失败返回false
*/
function getAdjacentItem(arr, options) {
    var arrLength = arr.length;
    var nextItems = [];
    if (!arrLength) {
        return false;
    }
    if (arrLength === 1) {
        options.ok && options.ok(arr);
        return true;
    }
    arr.sort(function (a, b) {
        if (a.y === b.y && Math.abs(a.x - b.x) === 1) {
            nextItems.push({
                a: a,
                b: b
            });
        }
        return a.y - b.y;
    });
    if (arrLength % 2) {
        if (Math.floor(arrLength / 2) === nextItems.length) {
            options.ok && options.ok(arr);
            return true;
        }
    } else {
        if (arrLength / 2 === nextItems.length) {
            options.ok && options.ok(arr);
            return true;
        }
    }
    options.cancel && options.cancel(arr);
    return false;
}

示例:请点这里


  转载请注明: XMwarrior 相邻算法

 上一篇
基于CSS3 column多栏布局实现水平滑页翻页交互 基于CSS3 column多栏布局实现水平滑页翻页交互
今天看大神张鑫旭的文章,有一篇 基于CSS3 column多栏布局实现水平滑页翻页交互,为熟悉column多栏布局写法,模仿 起点中文网 封装了个jquery拓展方法。如下: csshtml, body { width:
2019-03-12
下一篇 
网页防扒 网页防扒
所谓防火防盗防大佬,虽然我们提倡开源,但是有时也会用到“网页防扒”,在https://www.sojson.com 被挡了一会感觉很蓝瘦,顺便研究了下如何“防扒”,代码如下: document.onkeydown=function()&am
2019-03-06
  目录