javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > js数组反转

js数组反转的几种常见方法举例

作者:比较菜的Curry

最近学到了数组的使用方法,给大家分享一下,这篇文章主要给大家介绍了关于js数组反转的几种常见方法,文中通过代码介绍的非常详细,需要的朋友可以参考下

第一种:创建一个新数组使用reverse()的方法进行反转。

let arr = [1,2,3,4]
let arr1 = arr.reverse()
console.log(arr1);  //[4, 3, 2, 1]

第二种:利用数组循环,使用unshift() 方法将新项添加到数组的开头,并返回新的长度。unshift() 方法会改变数组的长度。

let arr2 = [1,2,3,4]
let arr3 = []
arr2.forEach((element) => { 
       arr3.unshift(element)
    })
console.log(arr3);  //[4, 3, 2, 1]

第三种:使用反向循环数组的方法添加至一个新的数组。

let arr4 = ["jin", "shi","peng"]
let arr5 = []
for (let i = arr4.length-1; i >=0; i--) {
    arr5.push(arr4[i])
}
console.log(arr5);  //['peng', 'shi', 'jin']

附:js实现数组中的一部分反转

动态规划法:const arr = [2, 6, 5, 8, 3, 5, 2, 6, 7];
const start = 3, end = 7;
const reverse = arr => {
   const { length: l } = arr;
   for(let i = 0; i < Math.floor(l/2); i++){
      const temp = arr[i];
      arr[i] = arr[l-i-1];
      arr[l-i-1] = temp;
   };
   return arr;
};
const reverseBetween = (arr, start, end) => {
   const num = Math.min(end - start, arr.length - start);
   arr.splice(start, 0, ...reverse(arr.splice(start, num)));
}
reverseBetween(arr, start, end);
console.log(arr);

完全用数组的方法实现

const arr = [1,2,3,4,5,6,7,8]  // 2,5  得 [1,2,6,5,4,3,7,8]
function Fselve(str,a,b){
  let arrary= [];
  let abs = arr.slice(a,b+1).reverse()
  for(var i=0;i<str.length;i++){
    if(i<a){
      arrary.push(str[i])
    }else if(b<i){
      arrary.push(str[i])
    }
  }
  arrary.splice(a,0,abs)
  let newArr =[]
  for(var j=0;j<arrary.length;j++){
    if(arrary[j].length>0){
      for(var h=0;h<arrary[j].length;h++){
        newArr.push(arrary[j][h])
      }
    }else{
      newArr.push(arrary[j])
    }
  }
  console.log(newArr,'new')
  return newArr
}
Fselve(arr,2,5)

总结 

到此这篇关于js数组反转的几种常见方法的文章就介绍到这了,更多相关js数组反转内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文