Array基本概念

2021-09-13 18:25:32 字數 2956 閱讀 1987

array可以使用new關鍵字建立 。

var a = new array(1,2,3,4);===var a = array(1,2,3,4);===var a = [1,2,3,4];

如果array接受乙個引數,那麼這個引數是length的長度;

如果array接受多個引數,那麼就不是length,是乙個普通陣列。

var a = array(3)    //會生成乙個length=3的陣列

var a2 = array(3,3) //[3,3]

陣列是特殊的物件,用物件建立陣列(如下**),那和直接建立陣列的區別是:用物件建立的陣列沒有陣列的原型(公有屬性),也就是說用物件建立陣列,它的__proto__直接指向object的原型,跳過array的原型。一張圖說明prototype和__proto__的區別

var a = [1,2,3];

var obj = ;

foreach接受乙個函式,這個函式接受三個引數(value,key,array),valuearray的元素,keyarray的索引,arrayforeach正在操作的陣列(可選)。

如果自己建立乙個foreach函式會怎麼寫呢?

先自己建立乙個foreach函式,它接收兩個引數(array,fn),array是陣列,fn是函式;然後在內部遍歷array,同時呼叫fn函式,並傳入兩個引數(value,keyarray的第一項是valuearray的索引是key

function foreach(array,fn)

}foreach(["aa","bb","cc","dd","ee","ff"].function(value,key)

/*aa 0

bb 1

cc 2

dd 3

ee 4

ff 5

*/})

呼叫foreach時傳入乙個陣列和乙個函式,內部過程:遍歷陣列,並對陣列中的每一項呼叫函式,呼叫函式的時候會傳入兩個引數(value,key),這個陣列有6項,傳6次,每次不一樣的value不一樣的key

再來看foreach這個api(如下**) ,它接受乙個函式,這個函式接受兩個引數(value,key),那麼它為什麼只接受乙個函式作為引數了,陣列去**了?

var a = ["aa","bb","cc","dd","ee","ff"];

a.foreach(function(value,key));

看一下a.foreach內部過程。首先建立乙個obj的物件,它內部沒有foreach這個方法,在外面給它強行新增foreach,然後就像普通物件一樣呼叫foreach就可以了。

var obj = ;

obj.foreach = function(fn)

}obj.foreach(function(value,key));

foreach遍歷陣列每一項,mapforeach的區別是map有返回值。filter有條見的篩選。

先呼叫filter篩選出偶數,再呼叫map乘上2,得出結果

var a = [1,2,3,4,5,6,7,8,9];

a.filter(function(value)).map(function(value2)); // [4,16,36,64]

reduce代替mapfilter

var a = [1,2,3,4,5,6,7,8,9]

a.reduce(function(arr,n),); //[2,4,6,8,10,12,14,16,18]

a.reduce(function(arr,n)

return arr;

},); //[2,4,6,8,10]

reverse反向排序陣列項,原陣列也被逆序了。

sort會按照公升序排列陣列。

sort可以接受乙個比較函式作為引數,可以實現降序排列

var students = ['小明','小紅','小花'];

var scores = ;

students.sort(function (value1,value2));

基本概念 C 基本概念

由於工作中需要用到c 編寫的一些工具,有時候需要根據需求修改或者定製工具,所以現在不得不學習一下c 的基礎語法,此為筆記,不成章法!機器語言 組合語言 高階語言 面向過程的程式設計方法 物件導向的程式設計方法 泛型程式設計方法 1 演算法設計 2 源程式編輯 3 編譯 4 連線 5 執行除錯 輸入裝...

基本概念 數控系統基本概念

第一章 基本概念 數控工具機cnc是一種按事先編制好的加工零件程式進行加工的高效 自動化加工裝置。是 computer numerical control machine tools 的簡稱。數控工具機較好地解決了複雜 精密 小批量 多品種的零件加工問題,是一種柔性的 高效能的自動化工具機。西門子系...

XSLT基本概念

我們首先來澄清乙個概念,大家可能聽說過xsl extensible stylesheet language xsl和我們這裡說的xslt從狹義上理解是一樣的,而按照w3c的標準,xslt的說法更嚴格些,因此我們在文章中統一使用xslt的稱法。它們之間具體的關係我們會在下面講述。1.1 什麼是xslt...