JS學習第十天筆記 Array類型

Array類型

數組的常見方法

檢測數組

如何肯定當前是一個數組,JS提供瞭如下幾種方式
1.typeof沒法檢測數組對象:typrof[]返回object
2.instanceof:[]instanceof Array返回true/false
3.Object.prototype.toString.call([])返回[object Array]
4.Array.prototype.isPrototypeOf([])返回true/false
5.ES5中的新方法,Array.isArray([])返回true/false數組

var arr = [1,2,3,4,5];
console .log(arr instanceof Array);//true
console.log(Object.prototype.toString.call(arr));//[object Array]
console .log(typeof null);//object
console .log(null instanceof Object);//false
console.log(Object.prototype.toString.call(null));//[object Null]
console .log(Array .prototype.isPrototypeOf(arr));//true
console.log(Array.isArray(arr));//true

轉換方法

JS提供了以下的方法用於數組的轉換
1.toString() 把數組轉換爲字符串,並返回結果
2.valueOf() 返回數組對象的原始值函數

var arr =[1,2,3,4,5];
console .log(arr.toString());//1,2,3,4,5
console .log(arr.valueOf());//[1,2,3,4,5]


var obj = {
    name :'jinx'
}
console .log(obj.valueOf());//{name:'jinx'}

進出棧方法

JS中提供了以下方法,用於數組的進出棧操做
1.push()想數組的末尾添加一個或多個元素,並返回新的長度
2.pop() 刪除數組中的而最後一個元素並返回刪除的元素
3.shift()刪除並返回數組的第一個元素
4.unshift() 向數組的開頭添加一個或更多的元素,並返回新的長度prototype

var arr= [1,2,3,4,5];
arr .push(6);
console .log(arr);//[ 1, 2, 3, 4, 5, 6 ]
arr.pop();
console .log(arr);//[ 1, 2, 3, 4, 5 ]

arr.unshift(7);
console .log(arr);//[ 7, 1, 2, 3, 4, 5 ]
arr.shift();
console .log(arr);//[ 1, 2, 3, 4, 5 ]

排序方法

JS中提供了以下的方法,用於數組的排序操做
1.reverse() 反轉數組的元素順序
2.sort() 對數組的元素進行排序code

var values = [1,2,3,4,5,6];
console .log(valuse.sort());//1,2,3,4,5,6
console .log(values. reverse());//6,5,4,3,2,1
###鏈接方法###
在JS中提供瞭如下方法,用於多個數組間的鏈接操做
concat()    鏈接兩個或更多的數組,並返回結果

var arr = [1,2,3,4,5];
console .log(arr.concat(6));//[ 1, 2, 3, 4, 5, 6 ]
console .log(arr.concat([7,8,9]));//[ 1, 2, 3, 4, 5, 7, 8, 9 ]對象

###操做方法###
slice()  選取數組的一部分,並返回一個新數組
splice() 從數組中添加或刪除元素

var arr = [1,2,3,4,5];
/*排序

splice(start, deleteCount)方法
* 做用 - 用於刪除當前數組中指定位置指定個數的元素
* 參數
  * start - 表示刪除的開始位置
  * deleteCount - 表示刪除的個數
* 返回值 - 將刪除的元素組成的新數組進行返回

*/
// var result = arr.splice(0, 5);
// console.log(result);
// console.log(arr);字符串

/*it

splice(start, deleteCount, item1, item2, ...)方法
* 做用 - 向指定數組的指定位置添加元素
* 參數
  * start - 表示刪除的開始位置
  * deleteCount - 表示刪除的個數
  * item1, item2, ... - 表示向數組添加的元素
* 返回值 - 將刪除的元素組成的新數組進行返回

*/
// var result = arr.splice(0, 0, 6,7,8);
// console.log(result);
// console.log(arr);io

// var result = arr.splice(0, 3, 6,7,8);
// console.log(result);
// console.log(arr);console

/*

slice()方法
* 做用 - 截取指定數組中的元素
* 參數
  * begin - 表示開始截取的位置(從 0 開始)
  * end - 表示結束截取的位置(截取最後一個位置的下一個位置)
* 返回值 - 返回截取的元素組成的新數組

*/
var result = arr.slice(2,3);
console.log(result);

###檢索方法###
indexOf() 搜索數組中的元素,並返回他所在的位置
lastindexOf  返回一個指定的字符串值最後出現的位置,在一個字符串中指定位置從後向前搜索

var arr =['jinx','vn','mf','noc'];
console .log(arr.indexOf('jinx'));//0
console .log(arr.indexOf('mf'));//2
console .log(arr.indexOf('bec'));//-1

###forEach方法###

var arr = ['jinx','mf','noc','vn'];
arr. forEach(function(currentValue,index,array){

console .log(currentValue);
console .log(index);
console .log(array);

});

###迭代方法###
1.every():判斷數組中每一個元素是否都知足fun函數定義的條件。只有知足才返回true,不然返回false。
2.filter():專門用於篩選出數組中符合fun函數判斷條件的元素組成的心數組。
3.forEach():專門用於對原數組中每一個元素執行相同的fun函數對象規定的操做。
4.map():專門用於基於袁術組建立新數組對象。
5.some():判斷數組中是否包含知足fun含糊是定義的條件的元素,只要包含就返回true,不然返回false。

var arr = [1,2,3,4,5];
var result = arr.every(function(currentValue,index,array){

return (currentValue<=5);

});
console .log(result);

##並歸方法###
1.reduce()將數組從左向右迭代。
2.reduceRight()將數組從右向左迭代.

var arr = [1,2,3,4,5];
arr .reduce(function(accumulator,currentValue,cunrrentIndex,array){

console .log(accumulator)
return accumulator + currentValue;

});

相關文章
相關標籤/搜索