首页 > 判断三组必填的东西

判断三组必填的东西

我现在有两组数组,他们都是一个对象下,并且默认是必填的,比如
下面这个类似于网易新闻底部导航功能,我想把他封装成一个插件,别人直接用就行了
 var obj={
    arr1:["新闻","阅读","视听","发现","我"],//文字
    arr2:["news.jpg","read.jpg","viedo.jpg","find.jpg","me.jpg"],//文字上面对应背景图片
 }
我的想法是如果arr1等于零就不往下操作了,还有就是arr2的长度不能大于arr1
 if(obj.arr1.length===0 || obj.arr2.length>obj.arr1.length){
    return [];  
 } 
不过我想要是再向obj里再添加个arr3比如用来做当前背景色的,那上面的判断还是要继续加个 
 if(obj.arr1.length===0 || obj.arr2.length>obj.arr1.length|| obj.arr3.length>obj.arr1.length){
    return [];  
 }  
这个自个都觉得挺恶心的,要是还要继续加那得多长,有没有更好的解决办法???或者说更合理的有利于维护的写法


function check(obj){

    var len = obj['arr1'].length;//取 arr1 的长度

    for(var key in obj){
        if(obj.hasOwnProperty(key)){
            if(
                obj[key].length === 0    //检测每一项的长度是否为 0
                || obj[key].length > len    //每一项的长度不能大于 arr1 的长度
            ){
                return false;
            }
        }
    }

    return true;
}

console.log(check({
    arr1:["新闻","阅读","视听","发现","我"],//文字
    arr2:["news.jpg","read.jpg","viedo.jpg","find.jpg","me.jpg"],//文字上面对应背景图片
}));

console.log(check({
    arr1:["新闻","阅读","视听","发现","我"],//文字
    arr2:["news.jpg","read.jpg","viedo.jpg","find.jpg","me.jpg"],//文字上面对应背景图片
    arr3:["news.jpg","read.jpg","viedo.jpg","find.jpg","me.jpg"]//文字上面对应背景图片
}));


console.log(check({
    arr1:["新闻","阅读","视听","发现","我",'asdf'],//文字
    arr2:["news.jpg","read.jpg","viedo.jpg","find.jpg","me.jpg"],//文字上面对应背景图片
    arr3:["news.jpg","read.jpg","viedo.jpg","find.jpg","me.jpg",'asdf','asdf'],//文字上面对应背景图片
    arr4:["news.jpg","read.jpg","viedo.jpg","find.jpg","me.jpg",'asdf'],//文字上面对应背景图片
}));

以上的代码是根据楼主的描述所编写的, 不过 你确定你的代码在 后面的其他数据项的数目小于 arr1.length 的时候, 不会出错吗?
比如 arr2 只有 2 个的时候, 你后面的那几个的背景图片怎么显示?

我怎么感觉, 其他的数据量只能 >= arr1.length 的时候 才算正确呢?


你百度下argument
判断的时候可以这样:
if(argument[0] == ""){
当第一个参数为空时
}


将多个字符串数组变成一个对象,这样扩展也方便:

var objs=[
    {
        title: "新闻",
        img  : "news.jpg"
    },
    {
        title: "阅读",
        img  : "read.jpg"
    },
    {
        title: "视听",
        img  : "viedo.jpg"
    },
    {
        title: "发现",
        img  : "find.jpg"
    },
    {
        title: "我",
        img  : "me.jpg"
    }
 ]
【热门文章】
【热门文章】