1、將陣列轉為字串:
array.prototype.join
var arr = [1,2,3];
arr.
join
(); //"1,2,3"
arr.
join
("_"); //"1_2_3"
重複的字串:
function repeatstring(str,n)
repeatstring("a",3); //"aaa"
repeatstring("hi",5); //"hihihihihi"
2、將陣列逆序:
array.prototype.reverse
var arr = [1,2,3];
arr.
reverse
(); //[3,2,1]
arr; //[3,2,1] 原陣列被修改
3、陣列排序:
array.prototype.sort
var arr = ["a","e","c","b","d"];
arr.
sort
(); // ["a","b","c","d","e"] 陣列屬性變化
var arr = [13,24,51,3];
arr.
sort
(); //[13,24,3,51]
arr; //[13,24,3,51] 原陣列被修改,但是只是把陣列轉化成字元進行排序,並不是數字排序
如果按照數字進行排序,如下:
arr.
sort
(function(a,b)); //[3,13,24,51] 排序正確,從小到大,若return b-a ,從大到小排序;
物件排序;
arr = [,,];
arr.
sort
(function(a,b));
arr.
foreach
(function(item));
//輸出結果:age 25/age 39/ age 99
4、陣列合併:
array.prototype.concat
var arr = [1,2,3];
arr.
concat
(4,5); //返回[1,2,3,4,5]
arr; //[1,2,3] 原始陣列未被修改
arr.
concat
([10,11],13); //[1,2,3,10,11,13],陣列10,11會被拉平,追加到原始陣列上。
arr.
concat
([1,[2,3]]); //[1,2,3,1,[2,3]] ,如果傳進去的是乙個陣列,那麼該陣列不會被拉平兩次。
5、返回部分陣列:
array.prototype.slice
slice
(a,b)方法:
如果a,b為正數時,引數a表示從前往後的第a個元素選中,引數b表示從前往後的第b個元素,不被選中;
如果a,b為負數時,引數a,b應該從後往前數。
var arr = [1,2,3,4,5];
arr.
slice
(1,3); //[2,3]
arr.
slice
(1); //[2,3,4,5],如果b引數沒有的情況,則選中從a個元素到最後
arr.
slice
(1,-1); //[2,3,4]
arr.
slice
(-4,-3); //[2]
arr; //[1,2,3,4,5] ,原始陣列未被修改。
6、陣列拼接:
array.prototype.splice
var arr = [1,2,3,4,5];
可以刪除從陣列某個位置開始至後面幾個元素操作
arr.
splice
(2,2); //return [3,4],刪除從第二個元素後面的2個元素
可以刪除指定位置後面的元素
arr.
splice
(2); //return [3,4,5], 刪除從第二個元素後面所有元素
可以刪除元素後拼接新的元素
arr.
splice
(1,1,"a","b"); //return [2],刪除從第乙個元素後面的1個元素,並拼接新的元素。
arr; //[1,"a","b",3,4,5]
7、陣列變數:array.prototype.foreach
var arr = [1,2,3,4,5];
arr.foreach(function(x,index,a));
//1|0|true
//2|1|true
//3|2|true
//4|3|true
//5|4|true
tips: foreach方法只支援ie9以上的瀏覽器,ecs5。
8、陣列對映:
array.prototype.map
var arr = [1,2,3];
arr.
map(function(x)); // [11,12,13]
arr; //[1,2,3] 原始陣列未修改。
9、陣列過濾:
array.prototype.filter
var arr = [1,2,3,4,5,6,7,8,9,10];
arr.
filter
(function(x,index)); //returns [1,4,7,8,9,10]
arr; //[1,2,3,4,5,6,7,8,9,10] 原始陣列未被修改
10、陣列判斷:
array.prototype.every && array.prototype.some
every 和 some 的區別是:
every表示陣列裡面全部的元素滿足條件時候才能返回true,否則返回false;
some表示陣列裡個別元素滿足條件時,就返回true,全部不滿足時,才返回false;
var arr =[1,2,3,4,5];
arr.
every
(function(x)); //true
arr.
every
(function(x)); //false
arr.
some(function(x)); //true
arr.
some
(function(x)); //false
11、陣列內元素兩兩聚合:
array.prototype.reduce && array.prototype.reduceright
reduce
和 reduceright的區別:
reduce是從左邊開始每兩個元素進行操作;
reduceright是從右邊開始每兩個元素進行操作;
var arr = [1,2,3];
var sum = arr.
reduce
(function(x,y),0); //6
arr ; //[1,2,3] 原始陣列未被修改
arr = [3,9,6];
var max = arr.
reduce
(function(x,y));
// 3|9
// 9|6
max; //9
var max = arr.
reduceright
(function(x,y));
// 6|9
// 9|3
max; //9
12、陣列檢索:
array.prototype.indexof && array.prototype.lastindexof
indexof:是從左到右檢索
lastindexof:是從右到左檢索
13、判斷是否為陣列:
array.isarray
array.
isarray
(); //true
其他判斷陣列的方法:
instanceof array; //true
.constructor === array ; //true
javascript 物件導向整理
整理一下js物件導向中的封裝和繼承。js中封裝有很多種實現方式,這裡列出常用的幾種。直接將我們的成員寫入物件中,用函式返回。缺點 很難看出是乙個模式出來的例項。function stu name,score var stu1 stu 張三 80 var stu2 stu 李四 90 console....
JavaScript陣列整理(一)
var a 1,2,3,4 建立陣列直接量 var b new array 1,2,3,4 呼叫建構函式建立 var c new arrary 10 只有乙個引數的時候表示建立指定長度的陣列 如果省略陣列直接量中的某個值,就會被賦值為undefined var a 1,3 建立的陣列為 1,unde...
JavaScript 整理筆記(二)
在web瀏覽器中每個標籤中包含乙個被編譯且立即執行的編譯單元。乙個編譯單元包含一組可執行的語句。var 用來定義變數,變數定義當在某個語句內,則稱其為語句的私有變數。當定義在window下時,則稱改變量為全域性變數。迴圈語句 while for do while 允許有乙個可選的前置標籤 label...