JavaScript中的Array和Map集合對象 (遍歷Array和Map)


JavaScript中的Array和Map集合對象

1.Array

用於在單個變量中存儲多個值

  • 創建
new Array();
new Array(size);
new Array(element0, element1, ..., elementn);
  • 長度
arr.length;設置或返回數組中元素的數目。
  • 賦值
var arr = new Array();
arr[0] = '555';
arr[1] = '666';
  • 遍歷
arr.forEach(
    function(a){
    	document.write(a);
    }
);

for(var i = 0;i<arr.length;i++){
    document.write(arr[i]);
}

for (var index in arr) {
    document.write(index);//index為集合下標
}

for (var value of arr) {
    document.write(value);//value為集合元素
} 
  • 常用方法
方法 描述
concat() 連接兩個或更多的數組,並返回結果。
join(',') 把數組的所有元素放入一個字符串。元素通過指定的分隔符進行分隔(默認使用 ',')。
pop() 刪除並返回數組的最后一個元素
push() 向數組的末尾添加一個或更多元素,並返回新的長度。
reverse() 顛倒數組中元素的順序。
sort() 排序
toString() 把數組轉換為字符串,並返回結果,元素之間使用‘,隔開’。
unshift() 向數組的開頭添加一個或更多元素,並返回新的長度。
indexOf('tt') 判斷集合中是否有‘tt’,如果有返回下標,沒有返回-1

2.Map集合

存放鍵值對集合

  • 創建
var map = new Map();
var map = new Map([['dd','123'],['cc',666]]);
  • 長度
map.size;
  • 賦值
map.put();
  • 遍歷
for(var key_value of map){
    console.log(key_value);//返回一個數組['key','value']
}
// ["dd", "123"]
//["cc", 666]

for(var key_value of map.values()){
    console.log(key_value);//遍歷屬性值
}
//123
//666

for(var key_value of map.entries()){
    console.log(key_value);//
}
//["dd", "123"]
//["cc", 666]

map.forEach(
    function(value,key,m){
        console.log(key,value);//m是遍歷的map對象 {"dd" => "123", "cc" => 666}
    }
);
//dd 123
//cc 666
  • 常用方法
方法 說明
clear() 清空map集合
delete('key') 刪除元素
get('key') 返回指定key的value,不存在返回undefined
has('key') map中是否包含鍵對應的值,如果包含返回true
set('key',value); 設置map中的值,返回該map
keys() 按插入順序返回所有的key
values() 按插入順序返回所有的value

3.JavaScript對象

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};
person.key1 = "aaa";//向對象添加新的屬性
person.key2 = "bbb";
person.key3 = "ccc";
person['key4'] = "ddd";
person['key5'] = "eee"; 
//遍歷
for(var key in person){
    console.log(key);
}
//注意! 這種map不能使用for(var value of map)遍歷
console.log(person.hasOwnProperty('key1'));
  • 訪問對象屬性
person.key1;
person['key1']
  • 刪除對象屬性
delete person.age;


免責聲明!

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



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