js數據類型之對象object類型(數組與自定義對象)


對象object(數組與自定義對象)

JavaScript 中的所有事物都是對象:字符串、數值、數組、函數...此外,JavaScript 允許自定義對象。

JavaScript 提供多個內建對象,比如 String、Date、Array 等等。

對象只是帶有屬性和方法的特殊數據類型。

數組

// 數組對象的作用是:使用單獨的變量名來存儲一系列的值。類似於Python中的列表。

var l = [11,'gary',true,11.11];  // 可存儲不同類型的元素
typeof l   
'object'   // 數據類型為對象object

l[1]; 	//  支持索引取值
'gary'

l[-1];   //  但是不支持負數

常用方法

方法 說明
.length 數組的大小
.push(ele) 尾部追加元素
.pop() 獲取尾部的元素
.unshift(ele) 頭部插入元素
.shift() 頭部移除元素
.slice(start, end) 切片
.reverse() 反轉
.join(seq) 將數組元素連接成字符串
.concat(val, ...) 連接數組
.sort() 排序
.forEach() 將數組的每個元素傳遞給回調函數
.splice() 刪除元素,並向數組添加新元素。
.map() 返回一個數組元素調用函數處理后的值的新數組

演示:

准備一個數組:
var ll = [11,33,22,44,66,55];
1、數組的大小.length
ll.length;
6
2、尾部追加元素.push()
ll.push(99);
[11, 33, 22, 44, 66, 55, 99]
3、獲取尾部元素.pop()
ll.pop();
99
4、頭部增加元素.unshift()
ll.unshift(12);
[12, 11, 33, 22, 44, 66, 55]
5、頭部移除元素.shift()
ll.shift();
12

ll
(6) [11, 33, 22, 44, 66, 55]
6、切片.slice()
ll.slice(0,3);
[11, 33, 22]
7、反轉.reverse()
ll.reverse()
[55, 66, 44, 22, 33, 11]
8、拼接成字符串.join()  //  與python相反
ll.join('$');   //  以$作為分隔符拼接
'55$66$44$22$33$11'
9、連接數組.concat(相當於python中的extend)
ll.concat([32,34,12]);
[55, 66, 44, 22, 33, 11, 32, 34, 12]    //  連接需要有一個變量接收不修改原數組的元素
10、排序.sort()
ll.sort();
[11, 22, 33, 44, 55, 66]
11、將數組的每個元素傳遞給回調函數.forEach()
var l2 = [11,22,33,44,55,66];   //  定義一個新的數組
格式:l2.forEach(function(形參){函數體代碼},l2);

一個參數:l2.forEach(function(value){console.log(value)},l2);  // console.log相當於python中的print 打印
          11
          22
          33
          44
          55
          66
// 解釋:將l2數組的元素循環交給function函數的參數讓function函數代碼塊做處理


兩個參數:l2.forEach(function(value,index){console.log(value,index)},l2);
            11 0
            22 1
            33 2
            44 3
            55 4
            66 5
// 第一個參數打印的是元素值,第二個參數打印的是索引值

三個參數:l2.forEach(function(value,index,arr){console.log(value,index,arr)},l2);
            11 0 (6) [11, 22, 33, 44, 55, 66]
            22 1 (6) [11, 22, 33, 44, 55, 66]
            33 2 (6) [11, 22, 33, 44, 55, 66]
            44 3 (6) [11, 22, 33, 44, 55, 66]
            55 4 (6) [11, 22, 33, 44, 55, 66]
            66 5 (6) [11, 22, 33, 44, 55, 66]	
// 第一個參數返回的是元素值,第二個參數返回的是索引值,第三個是元素所在的元組。
12、刪除元素,並向數組添加新元素.splice()
兩個參數情況:刪除指定范圍的元素(同樣遵循顧頭不顧尾)
	eg:ll.splice(0,3);
        (3) [11, 22, 33]	// 刪除前三位
        ll
        (3) [44, 55, 66]	// 剩下后三位	


三個參數情況:刪除指定范圍元素並添加新元素
	eg:ll.splice(0,1,77);   //  刪除第一位
        [44]
        ll
        (3) [77, 55, 66]	//   刪除第一位44並在這個位置添加了77
13、返回一個數組元素調用函數處理后的值的新數組.map()  
// map 和 forEach相仿

l2.map(function(value,index){return value*2},l2);   // 映射
(6) [22, 44, 66, 88, 110, 132]

自定義對象

//  自定義對象可以看作是python中的字典,但是js中的自定義對象要比python里面的字典操作起來更加方便

// 創建自定義對象
var d1 = {'name':'gary','age':18};
typeof d1;
'object'

d1['name'];
'gary'

d1.name;  // 可通過點(.) 的方式取值更加方便
'gary'

d1.age;
18

// 支持for循環:暴露給外界的也是key鍵
for(var i in d){
    console.log(i,d[i])
};


// 第二種創建自定義對象的方法 使用關鍵字:new
eg:
var d2 = new Object()  //  創造出來為空字典
d2.name='gary';  // 添加鍵值對 'name':'gary'
d2['age'] = 18;  // 添加鍵值對 'age':18
d2  // 查看自定義對象:{name:'gary',age:18}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM