好久的沒寫文章了,有點愧疚啊….(面壁反省中…)。感覺不論寫的水平如何,還是先要把自己寫文章的習慣養成才行。文學能力略差,各位大佬勿噴.
陣列建立
var arr = new Array("a","b","c");
或者
var arr = new Array(10);
//建立一個長度為10 的空陣列
或者
var arr = ["a","b","c"]
目前沒發現這兩種方式有啥區別,如有大神知道,歡迎補充。
建立好訪問就可以通過陣列下標訪問了,稍微有點基礎的同學基本都知道,就不多BB了。
遍歷陣列
var arr = ["a","b","c"];
arr.forEach(function(item,index){
console.log(item,index)
})
或者
var al = arr.length;
for(var a=0;a<al;a++){
console.log(arr[a]);
}
兩種方式可以通過自己程式碼當時的邏輯進行選擇,各有各的優點吧。
陣列元素新增
var arr = ["a","b","c"];
新增到最後面
arr.push("d"); // ["a","b","c","d"]
新增到最前面
arr.unshift("x") // ["x","a","b","c"];
陣列元素的刪除以及陣列的切分
var arr = ["a","b","c","d","e","f"];
刪除陣列最後一項
arr.pop(); // ["a","b","c","d","e"]
刪除陣列第一項
arr.shift(); // ["b","c","d","e","f"]
擷取陣列的一部分
// 擷取陣列的某一部分,原陣列變成擷取後剩餘的陣列,返回值為擷取的部分
arr.splice(1,4) // ["b","c","d","e"] arr=> ["a","f"]
// 第一個引數:1 指要擷取的開始位置(下標)
// 第二個引數:4 指要擷取的長度
獲取陣列的一部分
// 原陣列不變,返回值為需要的陣列
arr.slice(1,4) // ["b","c","d"] arr不變
// 第一個引數:1 指要獲取陣列的開始位置(下標)
// 第二個引數:4 指要獲取陣列的結束位置(下標)
複製一個陣列
var new_arr = arr.slice()
//也可以通過轉換字串的方式 ,看個人喜好了....
var new_arr = arr.copyWithin()
// 這個方法並不常用,而且不是深度複製,當你改變new_arr後arr也會隨著改變
獲取陣列某一元素下標
arr.indexOf("b") // 1
獲取陣列長度
arr.length // 6
填充陣列
arr.fill("x",2,5) //[ `a`, `b`, `x`, `x`, `x`, `f` ]
// 第一個引數:"x" 要填充的元素值
// 第二個引數為要填充的開始位置,第三個為要填充的結束位置(下標值)
顛倒陣列的順序
arr.reverse(); // [ `f`, `e`, `d`, `c`, `b`, `a` ]
陣列排序
arr.sort() // ["a","b","c","d","e","f"]
// 預設按首字母進行排序
// 方法接受一個function引數可以自己定義安什麼排序,function返回1或者-1
合併兩個陣列
var arr1 = ["a","b","c"] var arr2 = [1,2,3]
var new_arr = arr1.concat(arr2) // [ `a`, `b`, `c`, 1, 2, 3 ]
// 合併以後返回的是一個全新的陣列改變原有的arr1或者arr2不會影響new_arr
判斷陣列是否包含某個元素
var arr. includes("b") // true
// 後面還有一個引數 可以指定查詢的開始位置
// 這個方法並不常用而且存在相容性問題
用一個字串連線陣列元素
arr.join("-") // `a-b-c-d-e-f`
// 常用這個方法用來吧陣列轉為字串 引數可以為空或者空字串
陣列轉為字串
arr.toString() //`a,b,c,d,e,f`
arr.toLocaleString() //`a,b,c,d,e,f`
陣列迭代器
var a = [`a`, `b`, `c`];
var iterator = a.entries();
console.log(iterator.next().value); // [0, `a`]
console.log(iterator.next().value); // [1, `b`]
console.log(iterator.next().value); // [2, `c`]
var arr = [`a`, , `c`];
var sparseKeys = Object.keys(arr);
var denseKeys = [...arr.keys()];
console.log(sparseKeys); // [`0`, `2`]
console.log(denseKeys); // [0, 1, 2]
// 迭代器平時不怎麼常用,但是在某些關鍵地方有時候還是會給我們帶來很大的幫助的。
以上大概就是js中陣列的一些常見的屬性及方法了,如有遺漏歡迎各位大神及時指出補充。