欢迎来到元素模板ys720.com,本站提供专业的织梦模板PBOOTCMS模板网站模板网站修改/网站仿站
当前位置:主页 > 程序教程 > 其他教程 >
其他教程

javascript数组如何每隔几个元素添加一个元素

(元素模板) / 2022-06-02 16:51

有个需求是这样的:
项目是一个电影播放器,主页有一个电影推荐列表,但是需要每隔八部电影,中间插一条
广告,但是因为后台返回的数据格式,需要自己去加
1.首先先模拟一条数组,里面有多个对象

//这个是获取到的数组,我这里写的空对象

 let arr = [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, ];

 //这个是我等会要用到的空数组

 let res = [];

2.接下来我是循环这个数组

 

//这里的i++,换成了i=i+8,循环开始
 for (let i = 0; i < arr.length; i = i + 8) {
 //当判断i+8是否小于总数组的长度时,成立了就从(i,i+8)开始截取保存到res数组中,其实就是截取数组的前8个对象
            if (i + 8 < arr.length) {
                res.push(arr.slice(i, i + 8));
            } else {
            //这里长度不足8的对象也保存在res数组中,截取i的长度
                res.push(arr.slice(i));
            }
        }


 3.循环res数组,判断保存八个对象的数组后面push一条你要加的对象,不满8条对象的数组则不动最后合并数组就可以了

 res.forEach(function(item) {
           //八条对象的数组在后面添加你要添加的内容
            return item.length === 8 ? item.push({
                name: '张三'
            }) : item;
        })
        //这里定义一个空数组,并用apply指向这个空数组,concat将多个数组合并成一个数组
        let result = [].concat.apply([], res);

 


Copyright @ 2013-2021 元素模板 www.ys720.com All Rights Reserved. 版权所有 元素模板 www.ys720.com