最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 分享上家的一个小需求,低配版“轮询”

    正文概述 掘金(憨憨选手)   2021-01-27   435

           上家那时候,我刚画完页面,就接到了这个需求:
           一开始我刚拿到这个需求有些懵逼,履了履思路,然后还是一头懵逼。可能当时脑阔有点昏,不会写然后就是同事帮忙处理的。
           需求如下:
           现在我固定好了商品数量,和员工人数,将商品依次分给选定的人员。
           倘若每人分完以后,还有多的商品那么多的商品就优先分给编号靠前的人。
           例如:10个商品,3个人,最终结果为
           1号分到了:1,4,7,10 。
           2号分到了:2,5,8。
           3号分到了:3,6,9;
           一开始我不会整,后端首先给我提到了“轮询”这个词。网上大部分都是些什么ajax请求之类的啥啥啥的,然后大部分文章都是以一copy百而来,完全摸不到头绪。虽然需求理解,但不知道从何入手,最终还是被自己菜的出油的实力所击败,交由同事处理,同事处理完后我在改进,最终实现了效果。
           现如今我闲的,重新履了一遍然后就发现其实也没那么复杂。接下来咱们就开始上代码。
           

    //先简单定义好商品,以及员工
    var goods = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"];
    var person = [
      {
        id: 1,
        good: []
      },
      {
        id: 2,
        good: []
      },
      {
        id: 3,
        good: []
      },
    ];
    //然后我们需要知道我们这种可以轮几次,以及每一次循环开始的基数
    var counts = 0; //可以循环几次
    var num = 1; //每一次循环的基数
    //如果商品足够每个人一人拿一件
    if (goods.length % person.length == 0) {
      counts = parseInt(goods.length / person.length);
    } else {
      //如果不够整除说明肯定有人多拿,轮次+1
      counts = parseInt(goods.length / person.length) + 1;
    }
    //具体轮几次,我们是未知数,所以用for循环
    for (var index = 1; index <= counts; index++) {
    	//当循环是第一轮,基数为1,以后基数为(人数*(轮数-1))
    	if (index != 1) {
    		num = (index - 1) * parseInt(person.length);
    	} else {
    		num = 1;
    	}
            //每个人一轮一轮去拿对应的商品
    	person.forEach((res, i) => {
                    //这里主要是区分是不是第一轮
    		if (index == num) {
    			res.good.push(goods[i])
    		} else {
            		//当商品存在时,添加到数组
    			if (goods[i + num]) {
    				res.good.push(goods[i + num])
    			}
    		}
    	});
    }
    console.log(person);
    

    最终总算是完成了这个花里胡哨的需求(因为本人偏菜,随意对本人来说有些花里胡哨,当然对各位大佬来说完全小case)。
            第一次发文,不是很会,大家别嫌弃。


    起源地下载网 » 分享上家的一个小需求,低配版“轮询”

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元