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;
原文地址:https://www.cnblogs.com/dch0/p/11430974.html