length為陣列的唯一屬性
array js中的內建物件
陣列為object物件(object為瀏覽器最大物件),所以陣列什麼資料型別都可裝
陣列簡化宣告 var arr=[ ];
字串中也有此方法var arr=new array(); //new 初始化新建物件
console.log(typeof (arr)); //object
//陣列的賦值
arr[0]=1;
arr[1]="a";
arr[2]=null;
arr[3]={};
arr[4]=true;
arr[5]=undefined;
arr[6]=function(){};
console.log(arr); //[1, "a", null, , true, undefined, ƒ]
//直接賦值
var arr2=new array(1,2,3);
console.log(arr2); //[1, 2, 3]
三個引數(值,索引,陣列)var a=[1,2,3];
var b=[4,5,6];
var c=["1","2"];
console.log(a.concat(b).concat(a)); //[1, 2, 3, 4, 5, 6, 1, 2, 3]
console.log(a.concat(c)); //[1, 2, 3, "1", "2"]
感覺也有陣列遍歷的意思在其中,陣列遍歷後,過濾出返回符合條件的值
var e=[1,3,4,4];
var filt=e.filter(function(val,index,arr)
)
只用來遍歷陣列,無返回值,會改變原陣列(相當於for迴圈)var e=[1,2,3,4,4,5,6,7];
var fil=e.filter(function(val,index,arr)
})console.log(fil); //[4, 4]
可以用來執行一些改變原陣列的操作
與filter引數一樣
var f=[1,6,8,3];
f.foreach(function(val,index,arr))
與foreach對比記憶,兩個都是陣列的遍歷,引數也均相同var f=[1,6,8,3];
f.foreach(function(val,index,arr))
var bianli=f.foreach(function (a, b, c) )
console.log(bianli); //undefined
console.log(f); //[2, 12, 16, 6]
一般要是選出特定的數值,要用filter ,用map遍歷後不符合的也會輸出undefined
foreach
map
沒有返回值
有返回值
會改變原陣列
不會改變原陣列
split將字串轉化為陣列var g=[1,6,3,8,3];
var map= g.map(function(a,b,c)
// return 1; //[1, 1, 1, 1, 1]
})console.log(map);
用括號中的字元將他們分開
字串中也有此方法var f=[1,2,3,4,5,6];
console.log(f.join()); //1,2,3,4,5,6
console.log(f.join("")); //123456
console.log(f.join(",")); //1。2。3。4。5。6
多個重複元素,只返回第乙個索引值
字串中也有此方法,也是對原陣列無影響,返回值為擷取後的陣列var d=[1,2,3,4,5,6,3];
console.log(d.indexof(3)); //2
也可以叫陣列的刪除,刪除陣列中間元素,因為會影響原陣列
與substr類似
var j=[1,2,3,5,1];
console.log(j.slice(2, 1)); // 沒有的話,返回空集
console.log(j.slice(1, 4)); //[2, 3, 5]
console.log(j.splice(2, 1)); //[3]
console.log(j); //[1, 2, 5, 1]
var t=[1,5,8,3,2];
console.log(t.push(4)); //6
console.log(t); //[1, 5, 8, 3, 2, 4]
console.log(t.unshift(1));//7
console.log(t);//(7) [1, 1, 5, 8, 3, 2, 4]
pop後刪
刪除中間的 splicevar v=[1,2,3,4,5,6];
v.shift();
console.log(v); //[2, 3, 4, 5, 6]
v.pop();
console.log(v); //[2, 3, 4, 5]
發現sort只能處理一位數。若有多位數,只能識別多位數的第一位數進行排序var v=[2, 3, 4, 5];
console.log(v.reverse()); //[5, 4, 3, 2]
底層方法 改變底層sort方法將陣列從 大到小 排序var q=[1,8,4,46,2,8];
var q2=[1,8,4,5,2,8];
console.log(q.sort()); // [1, 2, 4, 46, 8, 8]
console.log(q); // [1, 2, 4, 46, 8, 8]
console.log(q2.sort()); // [1, 2, 4, 5, 8, 8]
console.log(q2); // [1, 2, 4, 5, 8, 8]
值存在返回true,值不存在flasevar qq=q.sort(function(n1,n2));
console.log(qq); // [1, 2, 4, 8, 8, 46]
var qq=q.sort(function(n1,n2));
console.log(qq); // [46, 8, 8, 4, 2, 1]
三個引數
應用:陣列求和,累乘var s=[1,2,3,4,3];
var ss=s.some(function(a,b,c))
console.log(ss); //返回值為 true
index引數一般用不到
三個引數 totle:計算結束的返回值;current:當前元素;
var m=[1,3,6,10];
var re=m.reduce(function(totle,current,index))
console.log(re);
JS7種方式建立物件詳解(上)
ecma 262 把物件定義為 無序屬性的集合,其屬性可以包含基本值 物件或者函式。建立物件最簡單的方式就是建立乙個object例項,然後給這個例項加上屬性與方法,如 var person new object person.name 小紅 person.run function 發展到以後,程式設...
JS 7 獲取貼上板的內容
前言 有時會有要獲取剪下板內容的情況,我最開始有這個需求,不過後面放棄了,因為有相容性的問題,在ie可行,在chrome和firefox不行。查到這篇部落格做了相容處理,就寫在這裡記錄一下。正文 繫結在了body上,也可以繫結在其他可用元素上,但是不是所有元素都支援copy和past事件。docum...
演算法7 陣列查詢
1.長度為n的陣列,元素大小為0 n 1,有些數字重複,找出任意乙個重複數字。例如 對應輸出2或3.由於數字長度為n,數字大小為0到n 1,可以將數字i放置在陣列中i位置,若陣列中i位置上數字已經是i,則說明i數字重複了,否則則進行交換,將數字i放置在陣列中i位置。public static int...