<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js对数组遍历的多种写法 以及Map和Set数据格式</title>
</head>
<!--
1.for()
2,for in 用来循环对象
3,forEach() //用来循环数组,不能break,不能return
4,map() 返回一个新的数组 和forEach相似
5,filter() 过滤
6,for of map对象循环,也可以循环数组,性能高。
-->
<body>
<script>
let arr = [1,2,5,6,7,8];
let arrs=[];
let arrays={name:"hanna",age:"18"};
let arrarsObj=[{name:"hanna"},{name:"zhangsan"},{name:"lisi"}];
// for(let i=0;i<arr.length;i++){//1,只能对数组进行操作
// arrs.push(arr[i]+1)
// }
// arr.forEach(function (val,index) {//其实就是用来代替for的!//循环数组,和map相似,不同是前者不能break和return
// console.log(val+1);//数组值
// console.log(index);//数组下标
// })
// for(let key in arrays){//1,可对象进行循环 for in遍历的是数组的索引,通常用for in 遍历对象的键名 //不建议对数组进行for in遍历,
// console.log(key);//对象的key值
//// console.log(array[key]);//对象的val
// }
// for(let key in arrays){//for in 加强版 对象进行循环,但是for in 可以遍历原型方法,所以建议在使用的时候,加个判断,如果是实例对象就操作,不遍历原型对象。
// if(arrays.hasOwnProperty(key)) {//判断是否属于对象实例方法
//// console.log(key);//对象的key值
//// console.log(arrays[key]);//对象的val
// console.log(key);//对象的val
// }
// }
// arr.map(function (val,index) {//为每个元素执行一定的操作,并返回一个新的数组//循环数组,不会对原数组有影响,可以return,会返回一个新的数组。可以链式操作。
//// console.log(val);//数组值
// console.log(index);//数组下标
// })//
// var a = arrarsObj.filter(function (item,index, array) {// filter 遍历 创建一个新的匹配过滤条件的数组。//是对数组进行操作,返回一个新的数组,不会对原数组有影响。
//// return item.name==="hanna"
// return index===1;
// return array;
// });
// console.log(a);
// console.log(arrs);
//Set有2中创建方式
let sets=new Set();//1,第一种
let setss=new Set([1,2,4,"hanna","2",2]);//第二种,
sets.add("hanna",);
sets.add("zhang").add("li").add("li").delete("li");
//Set的属性和方法
// sets.add() , sets.delete(), sets.has(),sets.size,sets.clear(),Array.from(setss)取参数的使用也需要用has()去取。
// console.log(Array.from(setss));//可以把set类型转化为对象类型
// console.log(sets);
//Map数据类型 2种创建方式
let m = new Map();//1,第一种
let map = new Map([["name", "小明"], ["title", "Author"]]);//第二种,初始化Map对象是一个二维数组。
m.set("edition"); // 键是字符串,值是空
m.set(262, "stan"); // 键是数字,值是stan
m.set(undefined, "nah").delete(262);//键是undefined,值是nah
//Map的属性和方法
//1,m.set(key,val)设置一个键值对,m.size返回总成员,m.get(key)读取这个键,m.has(key),m.delete(key),clear()清除所有成员
//循环遍历,结合for of
//for of 遍历 可遍历Map 和Set
// for(let [key,val] of map){//单个key和单个val
// console.log("key:"+ key);
// console.log("val:"+ val);
// }
// for(let key of map.keys()){//只循环于key
// console.log("key:"+ key);//
// }
// for(let val of map.values()){//只循环与val
// console.log("val:"+ val);//
// }
// map.forEach(function (val,key,map) {
// console.log(key);
// console.log(val);
// console.log(map);
// })
// 1,for of 遍历的数组的值,并非下标
// for(let i of "1234567"){
// console.log(i);
// }
}
</script>
</body>
</html>
js循环的多种方式
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1.当代种种事件不同于历史之处,在于我们不知道它们会产生什么后果。 2.经验和利益的偶然结合,往往会向人们揭示...