- reverse()方法翻转
- 反向添加数组
- 数组首尾交换
-
unshift()向数组头部添加
考点:在 数组首尾交换,reverse()方法肯定不是,是js方法,反向添加数组 和 unshift()向头部添加数组 一样是 利用了新数组,只有数组首尾交换是在 当前数组上操作
1. reverse()
利用 js方法reverse()方法翻转数组,就一句话
/** * js的reverse()方法 翻转数组 * @param arr * @returns {*} */ function f1(arr) { return arr.reverse() }2. 反向添加数组
创建空数组,循环遍历,从原数组的最高值通过 索引 插入到 数组
/** * 反向添加数组 * @param arr * @returns {*[]} */ function f2(arr) { let newArr = [] for (let i = 0; i < arr.length; i++) { newArr[arr.length - 1 - i] = arr[i] } return newArr }3. 数组首尾交换
把数组的索引0 和 数组的长度-1 进行交换
【注意:首尾交换,交换到arr长度一半的时候就交换成功,继续交换就又交换回来了】
/** * 数组首尾交换元素 * * 注意:首尾交换,交换到arr长度一半的时候就交换成功 * 让交换走玩 相当于 又交换回来了 * @param arr * @returns {*} */ function f3(arr) { // 在首尾交换的变量时候,在交换到arr.length一半的时候数组已经翻转成功 // 必须取一半就停止交换,不然 数组继续交换 就是没换了 // 因此 在这里借助一下 变量j ,每次循环j-1 直到i 大于j 说明刚好走了一半了 let j = arr.length - 1 for (let i = 0; i < arr.length; i++) { console.log(`循环:${i} ${arr[i]} ${arr[arr.length - 1 - i]} ${arr}`) let temp = arr[i] arr[i] = arr[j] arr[j] = temp j-- if (i > j) { break } } return arr }4. unshift()向数组头部添加
每次循环是0开始,利用unshift()从头部开始插入,实现翻转数组效果
/** * 利用unshift() 向数组头部插入元素 * * 解析:每次循环是0开始,利用unshift()从头部开始插入,实现翻转数组效果 * @param arr * @returns {*[]} */ function f4(arr) { let newArr = [] arr.forEach(v => { newArr.unshift(v) }) return newArr }
发表评论