js數(shù)組反轉(zhuǎn)的幾種常見方法舉例
第一種:創(chuàng)建一個(gè)新數(shù)組使用reverse()的方法進(jìn)行反轉(zhuǎn)。
let arr = [1,2,3,4] let arr1 = arr.reverse() console.log(arr1); //[4, 3, 2, 1]
第二種:利用數(shù)組循環(huán),使用unshift() 方法將新項(xiàng)添加到數(shù)組的開頭,并返回新的長(zhǎng)度。unshift() 方法會(huì)改變數(shù)組的長(zhǎng)度。
let arr2 = [1,2,3,4]
let arr3 = []
arr2.forEach((element) => {
arr3.unshift(element)
})
console.log(arr3); //[4, 3, 2, 1]第三種:使用反向循環(huán)數(shù)組的方法添加至一個(gè)新的數(shù)組。
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實(shí)現(xiàn)數(shù)組中的一部分反轉(zhuǎn)
動(dòng)態(tài)規(guī)劃法: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);完全用數(shù)組的方法實(shí)現(xiàn)
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)總結(jié)
到此這篇關(guān)于js數(shù)組反轉(zhuǎn)的幾種常見方法的文章就介紹到這了,更多相關(guān)js數(shù)組反轉(zhuǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Popup彈出框添加數(shù)據(jù)實(shí)現(xiàn)方法
這篇文章主要為大家詳細(xì)介紹了Popup彈出框添加數(shù)據(jù)的簡(jiǎn)單實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
javascript使用window.name解決跨域問(wèn)題
window.name 的美妙之處:name 值在不同的頁(yè)面(甚至不同域名)加載后依舊存在,并且可以支持非常長(zhǎng)的 name 值(2MB)。2008-09-09
JS技巧動(dòng)手實(shí)現(xiàn)紅包兔子雨效果示例詳解
這篇文章主要為大家介紹了JS技巧動(dòng)手實(shí)現(xiàn)紅包兔子雨效果示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
knockoutjs模板實(shí)現(xiàn)樹形結(jié)構(gòu)列表
這篇文章主要介紹了knockoutjs模板實(shí)現(xiàn)樹形結(jié)構(gòu)列表的實(shí)現(xiàn)代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-07-07
Object.defineProperty()?完整指南示例詳解
本文深入理解`Object.defineProperty()`的方法,包括基礎(chǔ)概念、屬性描述符的完整選項(xiàng)、常見使用場(chǎng)景等,感興趣的朋友跟隨小編一起看看吧2025-01-01
詳解嵌套命名空間在TypeScript中如何應(yīng)用
命名空間是TypeScript中非常有用的概念,可以幫助我們組織和管理代碼,避免命名沖突,下面小編就來(lái)和大家聊聊嵌套命名空間在TypeScript中是如何應(yīng)用的吧2023-06-06
javascript結(jié)合Cookies實(shí)現(xiàn)瀏覽記錄歷史
最近在工作當(dāng)中遇到一個(gè)問(wèn)題 有個(gè)頁(yè)面需要添加一個(gè)瀏覽歷史記錄功能,具體來(lái)說(shuō)就是要記錄下用戶在此網(wǎng)站的點(diǎn)擊歷史 并把它們降序排列出來(lái)(只顯示前6個(gè)瀏覽歷史而且不能重復(fù))。2008-09-09
vue 自定義指令directive的使用場(chǎng)景
這篇文章主要詳細(xì)介紹了vue 自定義指令directive的使用場(chǎng)景,文中有詳細(xì)的代碼示例,感興趣的小伙伴歡迎閱讀2023-04-04
JS實(shí)現(xiàn)的表頭列頭固定頁(yè)面功能示例
這篇文章主要介紹了JS實(shí)現(xiàn)的表頭列頭固定頁(yè)面功能,涉及javascript針對(duì)頁(yè)面元素及表格樣式動(dòng)態(tài)操作相關(guān)技巧,需要的朋友可以參考下2017-01-01

