07 ES5数组
-
map 映射(遍历)只针对数组的遍历,可以return 有三个参数 .map((item,index,arry)=>{});下面介绍几种用法:
- 遍历后 return 输出到页面
let data = [{title: 'title1',price: '15'}, {title: 'title1',price: '16'}, {title: 'title1',price: '17'}, {title: 'title1',price: '18'}, ] let result = data.map((item)=>{ return ( document.write(`<h2>价格:${item.price}</h2>`) ); })
-
return 返回新的数组
//return 返回筛选的数据 let test = data.map(item=>{ return item.price; }) console.log("test:",test);//test: (4) ["15", "16", "17", "18"] //返回值加入条件映射 let test1 = data.map(item=>item.price>16?'大于16':'小于16'); console.log("test1:",test1);//test1: (4) ["小于16", "小于16", "大于16", "大于16"]
-
reduce 汇总,目前没用到过,暂且跳过
-
filter 筛选 return 返回符合筛选条件的数组元素;
let data = [{title: 'title1',price: '15'}, {title: 'title1',price: '16'}, {title: 'title1',price: '17'}, {title: 'title1',price: '18'}, ] let result = data.filter(item=>item.price>16); console.log("result:",result); /* result:[{title: "title1", price: "17"}1: {title: "title1", price: "18"}] */
-
forEach 与map 用法类似,也是只能操作数组,区别是没有返回值return;
let data = [{title: 'title1',price: '15'}, {title: 'title1',price: '16'}, {title: 'title1',price: '17'}, {title: 'title1',price: '18'}, ] data.forEach(item=>{ console.log('item:',item);//item: {title: "title1", price: "15"} item: {title: "title1", price: "16"} item: {title: "title1", price: "17"} item: {title: "title1", price: "18"} }); data.forEach(item=>{ if(item.price>16){ item.price = "gao"; }else{ item.price = 'di'; } }) console.log("data:",data);//[{title: "title1", price: "di"},...]
- 此外补充一点 for …in 遍历 ,for in 遍历可以对数组使用也可以对json数据使用,
区别在于,遍历数组时 item 是数组的下标索引值,而json对象,item是属性的key值,下面举例;
//遍历数组 let data = [{title: 'title1',price: '15'}, {title: 'title1',price: '16'}, {title: 'title1',price: '17'}, {title: 'title1',price: '18'}, ] for(let item in data){ console.log('item:',item); console.log("data[item]:",data[item]); } /* item: 0 data[item]: {title: "title1", price: "15"} item: 1 data[item]: {title: "title1", price: "16"} item: 2 data[item]: {title: "title1", price: "17"} item: 3 data[item]: {title: "title1", price: "18 */
//遍历对象 let obj = { name: 'jack', old: '16', sex: 'male', } for(let item in obj){ console.log('item:',item);//name old sex console.log('obj[item]:',obj[item]);// jack 16 male console.log('obj.item:',obj.item);//undefined 注意键名是变量时,只能使用[]的方式来访问属性的值 }
-
some(): 把数组的每一项和某个条件进行 对比,如果有一个符合条件,就会返回 true,否则返回false;
-
every():把数组的每一项和某个条件进行 对比,如果全部符合条件,就会返回 true,否则返回false;