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