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
),value
是array
的元素,key
是array
的索引,array
是foreach
正在操作的陣列(可選)。
如果自己建立乙個foreach
函式會怎麼寫呢?
先自己建立乙個foreach
函式,它接收兩個引數(array
,fn
),array
是陣列,fn
是函式;然後在內部遍歷array
,同時呼叫fn
函式,並傳入兩個引數(value
,key
)array
的第一項是value
,array
的索引是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
遍歷陣列每一項,map
和foreach
的區別是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
代替map
和filter
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...