在之前的文章《JS數(shù)組學(xué)習(xí)之怎么拼接全部元素,返回一個字符串》、《JS數(shù)組學(xué)習(xí)之迭代數(shù)組計算元素總和、將值連接成字符串》中,我們介紹了按照數(shù)組順序,從左到右正向拼接全部元素,形成一個字符串的幾種方法。這次我們繼續(xù)介紹JS數(shù)組轉(zhuǎn)字符串,聊聊逆向(從右到左)拼接全部數(shù)組元素,形成一個反轉(zhuǎn)字符串的方法,有需要的朋友可以學(xué)習(xí)了解一下~
今天本文的主要內(nèi)容是:逆向遍歷數(shù)組,從右到左的將數(shù)組元素拼接成一個字符串。下面介紹3種實現(xiàn)方法。
方法1:利用for循環(huán)
實現(xiàn)思想:
-
利用for循環(huán)逆向遍歷數(shù)組
想要逆向遍歷數(shù)組,那么初始條件就是
i=數(shù)組長度-1,
限制條件為i>=0
,每循環(huán)一次i需要自減1(i--
)
for(i=arr.length-1;i>=0;i--){ //逆向循環(huán)遍歷數(shù)組 }
-
然后利用字符串連接運算符“
+
”或者concat()
方法來拼接數(shù)組元素,轉(zhuǎn)為字符串。【推薦閱讀:《JS字符串學(xué)習(xí)之巧用函數(shù)來連接多個字符串》】
我們看看實現(xiàn)代碼:
var arr = [1,2,3,4,5,6,7,8,9,0]; var i,str=""; for(i=arr.length-1;i>=0;i--){ //逆向循環(huán)遍歷數(shù)組 //拼接 str=str+''+arr[i]; // str=str.concat(arr[i]); } console.log(str);
輸出結(jié)果為:
方法2:利用數(shù)組的reduceRight() 方法
recudeRight() 方法可從右向左對數(shù)組中的所有元素調(diào)用指定的回調(diào)函數(shù)。該回調(diào)函數(shù)的返回值為累積結(jié)果,并且此返回值在下一次調(diào)用該回調(diào)函數(shù)時作為參數(shù)提供。
array.reduceRight(function callbackfn(previousValue, currentVaule, currentIndex, array)[, initialValue])
function callbackfn(previousValue,currentVaule,currentIndex,array)
:必需參數(shù),指定回調(diào)函數(shù),最多可以接收4個參數(shù):
-
previousValue:初始值,或者通過上一次調(diào)用回調(diào)函數(shù)獲得的值。
-
currentVaule:當(dāng)前元素數(shù)組的值。
-
currentIndex:當(dāng)前數(shù)組元素的數(shù)字索引。
-
array:包含該元素的數(shù)組對象。
我們看看利用reduceRight()怎么逆向拼接數(shù)組元素
var arr = [1,2,3,4,5,6,7,8,9,0]; var str = ''; function f(pre,curr) { str=pre+''+curr; return str; } arr.reduceRight(f); console.log(str);
輸出結(jié)果為:
如果想要使用分隔符來分隔每個數(shù)組元素,可將回調(diào)函數(shù)中兩個“+”運算符間的空字符串變?yōu)橹付ǚ指舴?/p>
var arr = [1,2,3,4,5,6,7,8,9,0]; var str = ''; function f(pre,curr) { str=pre+'-'+curr; return str; } arr.reduceRight(f); console.log(str);
輸出結(jié)果為:
方法3:利用reverse()+reduce()
reverse()可以反轉(zhuǎn)數(shù)組的元素順序;而reduce()方法的語法和用法與和reduceRight() 方法大概相同,唯一不同的是:它是從左到右對數(shù)組中的所有元素調(diào)用指定的回調(diào)函數(shù)。
array.reduce(function callbackfn(previousValue, currentVaule, currentIndex, array), initialValue)
實現(xiàn)思想:
-
先使用reverse()反轉(zhuǎn)數(shù)組元素,得到新數(shù)組arr2;
-
然后實現(xiàn)reduce()方法調(diào)用函數(shù),拼接數(shù)組元素
我們看看實現(xiàn)代碼:
var arr1 = [1,2,3,4,5,6,7,8,9,0],arr2=[]; var str = ''; function f(pre,curr) { str=pre+''+curr; return str; } arr2=arr1.reverse(); arr2.reduce(f); console.log(str);
輸出結(jié)果為:
好了,就說到這里了,有需要的可以看:javascript高級教程