返回首页 设计案例 文章动态 组件列表
联系我们

扫一扫微信二维码

查找数组,返回匹配到的第一个index 或者obj


/**
 * 
 * 查找数组,返回匹配到的第一个index 或者obj
 *
 * @param array 被查找的数组
 * @param feature 查找特征 或者为一个具体值,用于匹配数组遍历的值,或者为一个对象,表明所有希望被匹配的key-value
 * @param or boolean 希望命中feature全部特征或者只需命中一个特征,默认true
 * @return 查找特征如果为简单值则返回数组下标,如果为对象则根据rtnobj参数返回该对象或者下标 查找不到返回-1
 * 使用方法
 * 单指数组返回索引 var index = arr.findItem(3);
 * ObjectArray默认返回该Obj 
 * var index = arr.findItem({id: '2',name: '习大大'});
 * 加上参数返回obj索引 以及命中方法切换
 * var index = arr.findItem({id : '2',name: '习大大'},false,false);
 */
Array.prototype.findItem = function(feature, rtnobj = true, all = true) {
    for (let index in this) {
        let cur = this[index];
        if (feature instanceof Object) {
            let allRight = true;
            for (let key in feature) {
                let value = feature[key];
                if (!all) {
                    allRight = false;
                    if (cur[key] == value) {
                        return rtnobj ? cur : index
                    };
                }
                if (all && cur[key] != value) {
                    allRight = false;
                    break;
                }
            }
            if (allRight) {
                return rtnobj ? cur : index
            };
        } else {
            if (cur == feature) {
                return index;
            }
        }
    }
    return -1;
};


建站咨询

点我咨询

建站咨询热线

153-2135-3313

QQ,新浪是独立账号信息不互通

Q Q 登陆

我已阅读并接受 《注册声明》与《版权声明》

没有账号?立即注册

QQ,新浪是独立账号信息不互通

Q Q 注册

我已阅读并接受 《注册声明》与《版权声明》

已有账号?

注册声明

一、用户注册、登陆,视为接受本协议的约束。

二、用户承诺遵守国家的法律法规及部门规章

三、用户承诺遵守“313组件库”的知识产权政策.

四、站内插件用于行业交流、学习。

五、用户侵犯第三人的知识产权,由该用户承担全部法律责任。

版权声明

313组件库(www.yu313.cn)站内所有涉及插件及代码由会员或站主上传而来,313组件库不拥有会员上传的插件及代码的版权

313组件库作为网络服务提供者,对非法转载,盗版行为的发生不具备充分的监控能力。但是当版权拥有者提出侵权指控并出示充分的版权证明材料时,313组件库负有移除盗版和非法转载作品以及停止继续传播的义务。313组件库在满足前款条件下采取移除等相应措施后不为此向原发布人承担违约责任或其他法律责任,包括不承担因侵权指控不成立而给原发布人带来损害的赔偿责任。

如果版权拥有者发现自己作品被侵权,请及时向313组件库提出权利通知,并将姓名、电话、身份证明、权属证明、具体链接(URL)及详细侵权情况描述发往版权举报专用通道,313组件库在收到相关举报文件后,在3个工作日内移除相关涉嫌侵权的内容

QQ:515184405(周一到周五,9:30-18:00)

首页 案例 组件 我的