map后用solice取不到数组最后一个元素

简介

今天对数组使用slice取出需要的值后,再用map进行遍历循环,最后使用splice将数组中的值分批取出,

又因为数组中的数据比较多,所以又在splice外面加了一个map循环。然后出现的问题是:只能取到数组前三者的值

从而合为一个数组。然后最后一个值,是后面输出的。(总共是12个数据,使用splice取,分成4个数组,每个数组包含3个元素)

然后就搞了很久,反正是知道是splice这里的问题。因为我单独拿出来也是取不到最后一个值的。

之前的完整数据:

进行上面操作之后的数据:

单独将splice数据拿出来:

现在知道了问题,然后我们就可以对齐下手,然后找了很久,就试着使用了原生的for循环,结果成了,哈哈哈。

在这里记录一下,给自己弄个备份,也给遇到这个问题的小伙伴一个解决问题的参考。

解决办法

后面我就没有使用map+splice的方法了,而是使用的传统for循环来进行循环输出。

前提是你要知道你需要循环的次数,而这里我恰好可以算出来。

// slice是取出这个范围的数据,map是将这些属性进行相同的操作(循环遍历)
wechatDataArr.slice(1, wechatDataArr.length - 2).map((wechatItem, index, wechatArr) => {
// 将遍历取出的数据托送到这个新的数组中
const adminImgDataList = []
for (let i = wechatArr.length / 3; i > 0; i--) {
adminImgDataList.push(wechatArr.splice(0, 3))
}
console.log(adminImgDataList)
}

然后就成功的解决了,完结。撒花~~~~