數(shù)組的概念及其定義方式

數(shù)組的概念及其定義方式
數(shù)組:有序的值的集合

字面量的形式
1 var arr = [1,2,3]
2 Console.log(arr[0]);//0稱為索引或下標
3 Console.log(arr.length);//數(shù)組中元素的個數(shù)

4 var arr1=[];
5 arr1[0]=10;

構造函數(shù)

1 var arr1 = new Array()
2 var arr1 = new Array(10)//長度為10
3 var arr1 = new Array(1,2,3,4)//兩個及以上的數(shù)字為內(nèi)容

數(shù)組的常用方法(依賴于數(shù)組使用)
獲取方法:對象.方法( )

 var arr =new Array(1,2,3,4,5,6,7,8,9);

//push()返回數(shù)組中元素的個數(shù),向數(shù)組尾部中增加元素,有多少加多少,原數(shù)組發(fā)生改變。
var length=arr.push(10)
console.log(arr)//[1,2,3,4,5,6,7,8,9,10]
console.log(length)//10

//pop()從數(shù)組的尾部刪除一個元素,返回這個刪除的元素,不接收參數(shù)
arr.pop()
console.log(arr)//[1,2,3,4,5,6,7,8,9]
arr.unshift(0)//返回數(shù)組中元素的個數(shù)向數(shù)組的頭部增加元素,括號中有多少就加多少,原數(shù)組發(fā)生改變
arr.shift()//從數(shù)組的頭部刪除一個元素,返回這個刪除的元素,不接收參數(shù)
arr.slice(4)//從下標為4的開始截取,直至數(shù)組結束
arr.slice(0,2)//從下標0開始截取,到下標2結束,不包含下標2的數(shù),此方法原數(shù)組不變
arr.splice(4)//一個參數(shù),從下標4對應的位置開始,直到數(shù)組結束
arr.splice(0,1)//兩個參數(shù)從下標為0開始,第二個參數(shù)截取長度
arr.aplice(1,2,1,1,1)//三個及三個以上的參數(shù),從截取的起始位置開始添加第三個及以后的所有參數(shù),此方法原數(shù)組改變
arr.reverse()//數(shù)組翻轉(zhuǎn),該方法會改變原來的數(shù)組,而不會創(chuàng)建新的數(shù)組
arr.sort()//無參數(shù)默認從小到大排序,判斷方式:按位判斷
arr.sort(function(a,b){//從大到小排序
return b-a;
})
var arr1=[11,12]
var arr3=arr1.concat(arr,33,44)//將arr1,arr,33,44拼接為一個新的數(shù)組,用arr3接收
arr.join('-')//將數(shù)組轉(zhuǎn)化為為字符串,以括號內(nèi)的拼接

數(shù)組的遍歷方法
for循環(huán)

//使用變量緩存臨時數(shù)組
for(i=0;i<arr.length;i++)
{

//執(zhí)行代碼塊
console.log(i)

}
  forEach循環(huán)

//遍歷數(shù)組中的每一項,沒有返回值,對原數(shù)組沒有影響,不支持IE
arr.forEach((item,index,array)=>{
//執(zhí)行代碼
item+=1;
})
//數(shù)組中有幾項,那么傳遞進去的匿名回調(diào)函數(shù)就需要執(zhí)行幾次;

map循環(huán)
//map的回調(diào)函數(shù)中支持return返回值
//arr.map(function(value,index,array){

//執(zhí)行代碼

// return xxx

//})

forof遍歷

//可以正確響應break、continue和return
for (var value of myArray) {
console.log(value);
}
  filter遍歷

//不會改變原始數(shù)組,返回新數(shù)組
var arr = [
{ id: 1, text: 'aa', done: true },
{ id: 2, text: 'bb', done: false }
]
console.log(arr.filter(item => item.done))

//ES5

arr.filter(function (item) {
return item.done;
});

var arr = [73,84,56, 22,100]
var newArr = arr.filter(item => item>80) //得到新數(shù)組 [84, 100]
console.log(newArr,arr)
  every遍歷

//every()是對數(shù)組中的每一項運行給定函數(shù),如果該函數(shù)對每一項返回true,則返回true。

var arr = [ 1, 2, 3, 4, 5, 6 ];
console.log( arr.every( function( item, index, array ){
return item > 3;
}));
false
  some遍歷

//some()是對數(shù)組中每一項運行指定函數(shù),如果該函數(shù)對任一項返回true,則返回true。

var arr = [ 1, 2, 3, 4, 5, 6 ];

console.log( arr.some( function( item, index, array ){
    return item > 3;
}));

true
  reduce

//reduce() 方法接收一個函數(shù)作為累加器(accumulator),數(shù)組中的每個值(從左到右)開始縮減,最終為一個值

var total = [0,1,2,3,4].reduce((a, b)=>a + b); //10

//reduce接受一個函數(shù),函數(shù)有四個參數(shù),分別是:上一次的值,當前值,當前值的索引,數(shù)組

[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array){
return previousValue + currentValue;
});

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容