JS7 陣列演算法

2021-09-26 02:48:51 字數 3914 閱讀 8431

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)

)

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

var fil=e.filter(function(val,index,arr)

})console.log(fil); //[4, 4]

只用來遍歷陣列,無返回值,會改變原陣列(相當於for迴圈)

可以用來執行一些改變原陣列的操作

與filter引數一樣

var f=[1,6,8,3];

f.foreach(function(val,index,arr))

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]

與foreach對比記憶,兩個都是陣列的遍歷,引數也均相同

一般要是選出特定的數值,要用filter ,用map遍歷後不符合的也會輸出undefined

foreachmap

沒有返回值

有返回值

會改變原陣列

不會改變原陣列

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);

split將字串轉化為陣列

用括號中的字元將他們分開

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後刪
var 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]

刪除中間的 splice
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]

底層方法 改變底層sort方法將陣列從 大到小 排序
var 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]

值存在返回true,值不存在flase

三個引數

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...