定義陣列
1.var 陣列名稱 = [元素1,元素2,...];
var arr=;//定義空陣列
var arr1=[100,'前端',true,undefined];//定義陣列同時新增不同型別的元素
2.建構函式方式
var 陣列名稱 = new array(元素1,元素2,...);
var 陣列名稱 = new array(length);
length:number型別,表示陣列的長度(存在元素的個數)
var arr=new array();//用new創造出乙個空陣列的建構函式
var arr1=new array(100,'前端',true,undefined);//用new創造乙個空陣列的建構函式並新增元素
3.函式方式定義
var 陣列名稱 = array(元素1,元素2,...);
var 陣列名稱 = array(length);
length:number型別,表示陣列的長度(存在元素的個數)
var arr=array();//定義乙個空陣列
var arr1=array(100,'前端',true);//定義乙個空陣列並新增元素
var arr2=array(20);//定義乙個陣列並給它開20個位置
索引陣列
表示陣列中元素的位置使用數字值來表示的
數字值:表示元素的位置,也就是下標
陣列的長度與元素的個數是一致的
var arr=;//定義乙個空陣列
arr[0] = '大前端';
arr[1] = true;
關聯陣列
表示陣列中元素的位置使用字串來表示
注意關聯陣列的陣列長度與元素個數不一致,length在關聯陣列中失效
var arr=;//定義乙個空陣列
arr['name'] = '孫悟空';
arr['age'] = 500;
arr['job'] = '花果山美猴王';
稀疏陣列
陣列的長度與元素的個數不一致的,索引陣列的位置允許不連續的,沒有定義元素的位置預設為空
var arr=;
arr[0] = '美猴王';
arr[3] = 500;
arr[5] = '花果山';
訪問陣列的元素
陣列名稱[索引值]
var arr=['大前端',100,null];//定義陣列
console.log(arr[0]);//輸出arr中0位置的內容
console.log(arr[5]);//訪問arr中位置5的內容,雖然不存在,但是也不報錯,返回undefined
陣列的複製var num=100;
var res=num;
console.log(num);//輸出結果:100
console.log(res);//輸出結果:100
num=200;
console.log(res);//輸出結果:100
//複製變數裡的值,不管原變數怎麼改動值,都不影響複製它值的另乙個變數的值
var arr=['大前端',100,true];
var arr1=arr;
console.log(arr);//輸出結果:['大前端',100,true]
console.log(arr1);//輸出結果:['大前端',100,true]
arr=[100];
console.log(arr);//輸出結果:[100]
console.log(arr1);//輸出結果:['大前端',100,true]
arr[0]=100;
console.log(arr);//輸出結果:[100,100,true]
console.log(arr1);//輸出結果:[100,100,true]
/*複製乙個陣列,如果被複製的原陣列,只會把原陣列中的儲存位址位置賦值給另乙個陣列,
另乙個陣列會跟它一起通過位址位置連線到同乙個儲存位置,如果原陣列修改自己裡面的值
會影響另乙個陣列,如果原陣列直接重新賦值乙個新陣列,則不影響另乙個陣列*/
陣列的修改//索引陣列的修改
var arr=['大前端',100];
arr[0]='前端';
//關聯陣列的修改
var arr1=;
arr1['name']='孫悟空';
arr1['age']=500;
arr1['name']='唐僧';
陣列的刪除//索引陣列的刪除
var arr1=['大前端',true];
delete arr1[0];
//關聯陣列的刪除
var arr2=;
arr2['kecheng']='大前端';
arr2['name']='張三';
delete arr2['kecheng'];
迴圈遍歷陣列var arr = ['前端', 200, true, undefined];
// while語句
var i = 0;
while (i < arr.length)
// do...while語句
var i = 0;
do while (i < arr.length);
// for語句
for (var i=0; ifor...in語句
for語句:迴圈的開始和結束,都是由程式設計師決定的
for..in語句:迴圈只能從開始到結束
var arr = ['前端', 100, true, undefined];
/* for (var 變數 in 陣列)
* 變數:得到的是陣列的索引值
*/for (var i in arr)
// 關聯陣列的length屬性為 0
var arr1 = ;
arr1['name'] = '張三';
arr1['age'] = 28;
arr1['job'] = '程式設計師';
// for..in語句可以迴圈遍歷關聯陣列, for語句不行
for (var i in arr1)
// 稀疏陣列 - 陣列的長度與元素的個數不一致
var arr2 = ;
arr1['name'] = '李四';
arr1['age'] = 89;
arr1['job'] = '運動員';
// for..in語句迴圈遍歷稀疏陣列(直接得到有效元素值), for語句不行
for (var i in arr2)
二維陣列var arr = ;// 定義乙個空陣列
arr[0] = [蘋果x,8999,2017];
arr[1] = [小公尺,999,2016];
arr[2] = [華為,4563,2017];
console.log(arr);
// 訪問二維陣列中的元素
var result = arr[0];
console.log(result[0]);
console.log(arr[0][0]);
// 迴圈遍歷二維陣列
for (var i=0; i}
javascript醜數的解法
第一種 沒有看其他解法,自己寫的解法 1.寫乙個無限迴圈,然後如果當前數是醜數,則count 2.如果count n 則湊齊了n個醜數,返回 3.如果當前數不在醜數集合中 初始化為 1,2,3,5 4.如果當前醜數大於6,則需要判斷,如果這個數的約數只有1和他本身,則這個數不是醜數 5.進行拆分,判...
聊聊React Router中的History
在學習react router時,看到有關history有如下描述 react router 是建立在 history 之上的。簡而言之,乙個 history 知道如何去監聽瀏覽器位址列的變化,並解析這個 url 轉化為 location 物件,然後 router 使用它匹配到路由,最後正確地渲染對...
聊聊golang中的鎖
學習過作業系統的都知道程式有臨界區這個概念,臨界區就是程式片段訪問臨界資源的那部分 臨界區同一時刻只能有乙個執行緒進行訪問,其他執行緒需要訪問的話必須等待資源空閒。那麼一般程式語言都會使用鎖來進行臨界區訪問控制。golang主要有兩種鎖 互斥鎖和讀寫鎖 互斥鎖mutex mutex 用於提供一種加鎖...