聊聊javascript中的陣列

2021-09-13 12:08:30 字數 3764 閱讀 1932

定義陣列

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 用於提供一種加鎖...