javascript入門之?dāng)?shù)組[新手必看]
一、定義數(shù)組。
定義數(shù)組有兩個方法:
1、var arr1 = []; //定義一個空數(shù)組
2、var arr2 = [1,2,3,"str1","str2"]; //定義一個有5個元素的數(shù)組。
3、var arr3 = new Array(3); //定義一個空數(shù)組
4、var arr4 = new Array(1,2,3,"str1","str2"); //定義一個指定長度為5的數(shù)組。
二、數(shù)組元素的讀和寫。
arr[0]; //讀取第一個數(shù)組元素
arr[0] = "str1"; //改變數(shù)組第一個元素的值。
三、稀疏數(shù)組。
稀疏數(shù)組表示從0 開始不連續(xù)索引的數(shù)組。通常數(shù)組的length代表元素中元素個數(shù),如果數(shù)組是稀疏的,length屬性值將大于元素的個數(shù)。
in 操作符用于檢測元素在某位置是否存在元素,注意undefined也算存在。
如:var a1 = [,,];
var a2 = new Array(3);
0 in a1; //true,因為a[0]有undefined元素
0 in a2; //false,a2在索引0處沒有元素
四、數(shù)組長度
length屬性用于標(biāo)志數(shù)組的長度
如:var arr = [1,2,3,4,5];
arr.length; //5 arr數(shù)組有5個元素
五、數(shù)組元素的添加和刪除
push: //在數(shù)組的末尾添加一個元素
var arr = [1,2,3];
arr.push(4,5); //arr變?yōu)閇1,2,3,4,5]
delete: //刪除數(shù)組某個位置的元素
var arr = [1,2,3]
delete arr[1] //arr變?yōu)閇1,,3]
1 in arr //false
六、數(shù)組的遍歷
數(shù)組的遍歷通常使用for語句來實現(xiàn)
var arr = [1,2,3,4,5];
for(var i = 0.i<arr.length;i++){
if(!a[i]) continue; //跳過null,undefined和不存在的元素
}
七、多維數(shù)組
多維數(shù)組就是數(shù)組里的元素還是數(shù)組
如:var arr = [[1,2,3],[,4,5,6]];
arr[1][1]; // 5
八、數(shù)組方法
1、 join() 用于將數(shù)組中所有元素都轉(zhuǎn)化為字符串 并連接在一起,還可以自定義連接字符
var arr = [1,2,3];
arr.join(); // => "1,2,3"
arr.join("=="); // => "1==2==3";
2、 reverse() 用于將數(shù)組元素的順序顛倒
var arr = [1,2,3];
arr.reverse(); //arr數(shù)組變?yōu)閇3,2,1]
3、 sort(); //用于對數(shù)組內(nèi)的元素進(jìn)行排序??梢詡魅胍粋€函數(shù)用作排序,如果為空,則按字母順序排序。undifined元素排到最后
var arr = [1,2,3];
a.sort(function(a,b){
return a-b; //排序標(biāo)準(zhǔn) 負(fù)數(shù) 0 正數(shù),比較結(jié)果先返回小的那個
}); //arr數(shù)組的值為[1,2,3] 如果第二個條件變?yōu)閎-a則結(jié)果為[3,2,1]
4、concat() //用于組合一個新的數(shù)組,返回一個新的數(shù)組
var arr = [1,2,3]
arrnew = arr.concat(4,5) //arrnew數(shù)組為[1,2,3,4,5]
arrnew1 = arr.concat([4,5],[6,7]); //arrnew1數(shù)組為[1,2,3,4,5,6,7]
5、slice() //用于返回數(shù)組指定區(qū)間的元素組成的數(shù)組,如果輸入一個參數(shù),則是從這個參數(shù)到結(jié)束之間的數(shù)組。兩個參數(shù)就是,第一個參數(shù)是起始位置,第二個參數(shù)是個數(shù)。
var arr = [1,2,3,4,5];
var arr1 = arr.slice(2); //[3,4,5]
var arr2 = arr.slice(1,3); //[2,3]
6、splice() 刪除或者添加元素。會改變原數(shù)組本身,相當(dāng)于C#中的引用(ref),原數(shù)組是刪除的元素組成的數(shù)組,返回值是剩下的元素組成的數(shù)組。
var arr = [1,2,3,4,5];
var arr1 = arr.splice(1,3); //arr為[2,3,4],返回的數(shù)組arr1為[1,5]
var arr2 = [1,2,3,4,5];
var arr3 = arr2.splice(2,0,'a','b'); //從第2位開始刪除,刪除兩個元素,然后從該位置插入'a','b';arr2為[],因為沒有刪除任何元素,arr3[1,2,'a','b',3,4,5]
7、 push()與pop() 在數(shù)組尾部添加或刪除一個元素,添加時返回之為最后一個添加的元素,刪除時。返回值為刪除的那個元素。
push() 函數(shù)在數(shù)組尾部添加一個元素。
pop() 函數(shù)刪除數(shù)組的最后一個元素。
var arr = [1,2,3]
arr.push(4); //arr為[1,2,3,4]
var arr1 = [1,2,3]
arr.pop(); //arr1為[1,2]
8、unshift()和shift()
shift(),unshift()與push(),pop()只不過,是在數(shù)組頭部操作而非尾部。
shift() 在數(shù)組頭部移除一個元素,返回值為被刪元素。
unshift() 在數(shù)組頭部添加一個元素,返回組為最后一個添加的元素。
var arr = [1,2,3];
var a = arr.shift(); //arr變?yōu)閇2,3] a為1
var arr1 = [1,2,3];
var b = arr1.unshift([4,5]); //arr1變?yōu)閇4,51,2,3],b為4 返回最后一個添加的,先添加5再添加4
9、toString()和toLocaleString() 將數(shù)組轉(zhuǎn)化為字符串
var arr = [1,2,3]
arr.toString(); //生成"1,2,3" 與不使用任何參數(shù)的join()是一樣的。
二、ECMAScript中的數(shù)組方法
1、forEach() forEach() 從頭到尾遍歷數(shù)組,為每個元素調(diào)用指定的函數(shù)。
var arr = [1, 2, 3, 4, 5];
var sum = 0;
arr.forEach(function (value) {
sum = sum + value;
});
document.write(sum); //sum最終為15
2、map() map()方法將調(diào)用的數(shù)組的每個元素傳遞給指定的函數(shù),并返回一個數(shù)組。
var arr = [1, 2, 3, 4, 5];
var arr1 = arr.map(function (value) {
return value + 1;
});
document.write(arr1.join()); //arr1為[2,3,4,5,6]
3、filter() filter()過濾,返回的元素是調(diào)用數(shù)組的一個子集,過濾掉不符合條件的元素。
var arr = [1, 2, 3, 4, 5, 6];
var arr1 = arr.filter(function (i) { return i % 2 == 0 });
document.write(arr1.join()); //arr1為[2,4,6]
4、every()和some()
every()當(dāng)且僅當(dāng)數(shù)組里的所有元素調(diào)用判定函數(shù)都返回true,它才返回true。第一次返回false就停止遍歷。
some()當(dāng)數(shù)組里存在一個元素調(diào)用判定函數(shù)返回true,它就返回true。第一次返回true就停止遍歷。
var arr = [1, 2, 3, 4, 5, 6];
var a = arr.every(function (x) { return x > 3; });
var b = arr.some(function(y){ return y > 3; });
document.write("a的值是:" + a); //a的值是false,a中不是所有元素大于3
document.write("b的值是:" + b); //b的值是true,b中存在元素大于3
5、reduce()和reduceRight()
reduce() 將數(shù)組中的元素以指定函數(shù)進(jìn)行組合,生成單個值,第一個參數(shù)是簡化操作函數(shù),第二個參數(shù)是傳遞給函數(shù)的初始值。最后結(jié)果是初始值再按組合函數(shù)與最后結(jié)果計算一次。第二個參數(shù)即初始值可以省略,當(dāng)初始值省略就直接從第一個元素開始計算。
var arr = [1, 2, 3, 4, 5, 6];
var count = arr.reduce(function (x, y) { return x + y; },0);
document.write(count);
reduceRight(); 與reduce()唯一的不同就是它從右至左選擇元素進(jìn)行計算。
6、indexOf()和lastInsexOf()
indexOf() indexOf()從頭至少尾返回找到的第一個元素的索引。
lastIndexOf() lastIndexOf()倒序查找元素,返回第一個找到元素的索引。
var arr = [1, 2, 3, 2, 1];
var i = arr.indexOf(2); //從頭至尾搜索,第一次遇見2是arr[1],因此返回1
var j = arr.lastIndexOf(2); //從尾至頭搜索,第一次遇見2是arr[3],因此返回3
document.write(i + "<br/>");
document.write(j);
7、Array.isArray(); //判定一個對象是否數(shù)組對象
var arr = [1, 2, 3];
var str = "str1";
document.write(Array.isArray(arr)); //返回true arr是數(shù)組對象
document.write(Array.isArray(str)); //返回false str是字符串,并非數(shù)組對象
相關(guān)文章
詳解PHP中pathinfo()函數(shù)導(dǎo)致的安全問題
這篇文章主要給大家介紹了PHP中pathinfo()函數(shù)導(dǎo)致的安全問題,文中給出了詳細(xì)的介紹與示例代碼,相信對大家的理解和學(xué)習(xí)具有一定的參考借鑒價值,需要的朋友可以參考下,下面來一起看看吧。2017-01-01JavaScript窗口功能指南之在窗口中書寫內(nèi)容
JavaScript窗口功能指南之在窗口中書寫內(nèi)容...2006-07-07js傳遞數(shù)組參數(shù)到后臺controller的方法
下面小編就為大家分享一篇js傳遞數(shù)組參數(shù)到后臺controller的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03javascript數(shù)組中的map方法和filter方法
這篇文章主要介紹了javascript數(shù)組中的map方法和filter方法,文章內(nèi)容介紹詳細(xì),具有一定的參考價值,需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助2022-03-03