陣列(array)
陣列指的是按次序排列的一組值,其中每乙個值都有乙個編號,這個編號被稱之為索引值,從0開始0.1.2.3進行排列
陣列通常用來儲存一系列的值。建立陣列通常使用兩種方式,一種事通過直接量進行創造,另一種是通過建構函式創造
demo:通過直接量的方式;
var test_arr = [10,20,30,40]
//通過直接量的形式建立了乙個陣列;
demo:通過建構函式的形式;
var test_arr = new array();
console.log(test_arr);//
//也可以在使用建構函式建立的時候設定乙個具體的值,列如;
var test = new array(10);
//此處相當於建立了乙個length屬性值為10的空陣列
console.log(test);//列印出來的是乙個空的陣列;
console.lo(test.length);//雖然建立的是空的陣列,但是空陣列裡面的位置依舊存在。所以length的長度為10
var test_arr2 = new array(10,20,30,40);
console.log(test_arr2);//輸出來的陣列為【10,20,30,40】
console.log(test_arr2.length);//輸出來的結果為4
在以上的案例中我分別通過直接量與構建函式的方式建立了陣列,兩種方法其實都可以建立我們想要使用的陣列,但是構建函式建立陣列的方式無論是從效率還是建立速度來講,遠遠不及直接量.
而且像webstorm這類ide工具在使用構建函式建立陣列的時候會把構建函式標出來,並報出有更簡單的方法。而這個方法就是使用直接量進行建立。
所以在我們需要建立乙個陣列的時候除非沒得選否則盡量使用直接量的形式,畢竟「懶,是推動世界進化的動力!」.
使用構建函式與直接量建立陣列的區別.
當使用構建函式建立陣列時;
當使用直接量的時候,相當於直接將資料寫入記憶體中,也就是直接作用在作用域鏈中,這種建立陣列的方式是最快的。
在es5中有兩條作用域鏈,一條是var也就是變數的作用域,一種是函式宣告。
在js當中直接將資料儲存在變數中速度是最快的,其次是通過變數宣告,最後是通過函式呼叫獲得的量。
1976.6 es1中,直接量有四種:null、boolean、numeric、string
1998.8 es2中,與es1相同
1999.12 es3中,直接量加入了regular
2011.6 es5.1 與上面相同
在es3和es5中,將陣列和物件歸於表示式一章裡,稱之為初始器。
在老一代程式設計師裡面,被稱為函式直接量。之前因為w3c的英文翻譯到國內就莫名其妙翻譯成了函式直接量和物件直接量。
現在官方已經修正了。
陣列的型別
在js當中陣列也是一種特殊的物件型別。
var arr = [10,20,30];
console.log(typeof arr)//輸出的結果是object
如果想判斷乙個陣列的型別可以通過instanceof來進行判斷。
var arr = ;
console.log(arr instanceof array);//輸出的結果為ture。為什麼為真?請參考強型別轉換。
demo:增加陣列內容。
var arr = ;
arr[0] = "張三丰";
console.log(arr)//["張三丰]
demo:直接創造乙個帶有內容的陣列
var arr = [10,20,30];
console.log(arr)//【10,20,30】
demo:構建函式建立陣列
var arr = new array();
arr[0] = "名叫";
arr[1] = "陽頂天";
console.log(arr)//[「名叫」,「陽頂天」]
demo:構建函式創造乙個帶有內容的陣列
var arr4 = new array('張三','李四','王五');
console.log(arr4); // [ '張三', '李四', '王五' ]
demo:陣列的查詢:
var arr1 = ['張三','李四','王五'];
// 查詢陣列當中指定位置的元素
console.log(arr1);// 列印全部的陣列元素
console.log(arr1[0]); // 根據索引值查詢 張三
console.log(arr1[2]); // 王五
console.log(arr1[555])//輸出undefined
一旦索引值超過最大範圍,則為undefined。
demo:修改陣列內容
var arr = [10,20,30,40]
arr[0] = "張三丰"
console.log(arr)//輸出【「張三丰」,20,30,40】;
如果需要修改內容直接按照元素的索引值進行修改即可。
demo:delete刪除陣列操作
var arr = [10,20,30,];
delete arr[0];
console.lo(arr)//輸出[1 enpty item,20,30]
delete刪除的元素僅僅是刪除的內容,原來所在的位置依舊存在,只是變味了空。
console.lo(arr[0])//輸出undefined
陣列與物件的常規操作
給陣列新增字段 arrayaddziduan arr,name return newarr 物件合併 let user let page let newobj object.assign newobj,user,page es6 set set 和傳統es5的陣列array類似。都是存放資料的,最大...
1687 陣列操作(非常規思維)
1687 陣列操作 time limit 1 sec memory limit 128 mb submit status web board description 給你乙個初始的長度為n的陣列。1 n 105 有兩個操作 op1 l,r 給兩個整數l和r 1 l r 當前陣列長度 你需要計算陣列從...
JBPM的常規操作
1.撤回到上乙個節點 刪除高經理審批之後所有的節點的審批意見 如果流程已經結束,需要處理流程例項表 delete fw wf course c where f.course id in 227072 and f.process instance id 2262335 1654048 將流程回滾到系統...