ECMAscript一些方法的使用

shirleyYing發表於2017-03-04

typeof 操作符 來檢測 屬性是否 都存在

例如:typeof ages.name == "string"  ===>如果是 true 就存在 , 若是 false 就不存在

instanceof操作符 ECMAscript3  就出來  檢測 只有一個全域性環境下的陣列檢測,

如果有多個全域性環境,就出錯,所以ECMAscript5就新增一個,Array.isArray(需要檢測的變數),檢測是不是陣列

轉換方法

toLocalString()、toString()返回由陣列中的每個值的字串拼接而成的一個以逗號分隔的字串,而呼叫valueOf()返回的還是陣列

var arr = ["1","2","3"];

console.log(arr.toString());//  1,2,3

console.log(arr.valueOF());//["1","2",'3"]

console.log(arr);//["1","2","3"]

toLocalString()與toString()一樣的效果,只不過,兩者不是不同的

join("分隔符")  ====>join()方法重現了toString()方法的輸出,返回值都為字串, 以 分隔符 為 分隔,返回值為字串,分隔符  可以隨便取

棧  ===》 後進先出

push()從最後推入

pop()從最後移除

隊 ===》 先進先出

unshift()從第一項推入

shift()從第一項取出

重排序方法

revere();   降序  但是不夠靈活

sort();   >0 升序 <0 降序  返回值為字串

操作方法

 concat()方法  可以基於當前的陣列中的所有項建立一個新的陣列,先建立一個副本,再將接收到的引數新增到這個副本的末尾,最後返回新構建的陣列

var arr1 = ["1","2"];

var arr2 = arr1.concat("3",["4","5"]);

console.log(arr1);//["1","2"]

console.log(arr2);//["1","2","3","4","5"]

slice()方法  (切片)   陣列和字串都行,返回的是原來的資料的型別,陣列的返回的是陣列,字串的返回的是字串,

var arr1 = ["1","2","3","4"];

arr1 = arr1.slice(1,3);

console.log(arr1);//["2","3"]

注意:slice();  一般有兩個引數,第一個引數是起始位置,第二個引數是結束位置,而且起始位置的引數必須 小於 結束位置的引數,如果是負數,就用陣列或是字串的長度加上負數,再來看看是不是,起始位置引數小於結束位置的引數。

splice()方法  

刪除 splice()  只需要2個指定引數,第一個引數是刪除的第一項引數,第二個引數是要刪除的項數,例如splice(0,2) 要刪除前兩項,注意:第一個引數必須大於第二個引數

插入 splice() 任意多個項,第一個引數是 起始位置,第二個引數是 0(要刪除的項數),後面的就是插入的項數

替換 splice() 任意多個項,第一個引數是 起始位置,第二個引數是 1(要替換的項數),後面的就是被替換的項數

subStr()方法  2個引數,第一個引數是 起始位置的(可以是負數==》字串長度加上負數就是起始位置) 第二個引數是要切割的長度

substring()方法  2個引數, 只要2個引數不要相等或是都是負數就行,只要有一個是負數,那他就是0,一個引數是起始位置,另一個引數是接受位置

位置方法

indexOf(); 一般有兩個引數,第一個引數是要查詢的項,第二個引數是查詢起點的位置;如果只有一個引數,就是要查詢的項數

lastIndexOf(); 與上面一樣,只不過,是從最後開始查詢起

迭代方法

every()方法  對陣列中每一項執行的給定函式,如果該函式對每一項都返回true,則返回true

some()方法  對陣列中每一項執行的給定函式,如果該函式的任意一項返回true,則返回true

foreach()方法 對陣列的每一項執行給定函式,這個方法沒有返回值

filter()方法  對陣列的每一項執行給定的函式,該函式會返回true的項組成的函式

map()方法 對陣列的每一項執行的給定的函式,返回每次函式呼叫的結果組成的陣列

要求:將 str2中的每一項,在str1中凡是有與str2相同的項數,去掉

var str1 = "dabbcdrtuu";
var str2 = "bcdt";
var arr1 = [];
var arr2 = [];

arr1 = str1.split("");

arr2 = str2.split("");

//迭代
arr2.forEach(function(item1,index,array){
  arr1 = arr1.filter(function(item2,index,array){
    return item1 != item2 ;
  });
});

要求:用一個簡單的辦法建立一個為100的陣列;我覺得用map就很好,注意:map前面的陣列,就算是空的,必須是有100位的陣列

var arr = new Array(100);
var mapArr = arr.join(",").split(",").map(function(item,index,array){
   return index+1;
 });
console.log(mapArr);

//歸併方法

reduce()和reduceRight()  都有四個引數:前一個值,當前值,項的索引和陣列物件,第一個引數是陣列的第一項,第二個引數是陣列的第二項,個人感覺有點像遞迴

var arr = [1,2,3];

var sum = arr.reduce(function(prev,cur,index,array){

  return prev+cur;

});

reduce() 返回的值是prev

reduceRight()方法 相反 返回的是cur 

 

相關文章