当前位置:网站首页>ES6数组的扩展方法map、filter、reduce、fill和数组遍历for…in for…of arr.forEach
ES6数组的扩展方法map、filter、reduce、fill和数组遍历for…in for…of arr.forEach
2022-08-02 03:24:00 【yorup】
一、数组的扩展方法
1: array.map的用法
const arr = [1,2,3,4];
const newarr = arr.map(item=>item+2);
console.log(newarr);
2: array.filter() 过滤
const arr = [1,2,3,4,5,6,7];
const newarr = arr.filter(item=> item%2==0);
console.log(newarr);
3: array.reduce() "缩减" "累加器"
//currentValue:当前值
// reduce第二个参数指定初始值
const arr = [1,2,3,4,5];
let sum = arr.reduce((total,currentValue)=>{
return total + currentValue;
},10) //初始值为10,然后累加
console.log(sum);
4:fill填充
let arr = [1,2,3,4,5,6,7];
arr.fill('x',1,3);
console.log(arr);
二、数组遍历
1:for of遍历数组的值(遍历可迭代具备迭代器接口)
const arr = ["a","b","c","d"];
for(let v of arr){
console.log(v);
}
2:for in遍历索引(遍历可枚举类型)
const arr = ["a","b","c","d"];
for(let k in arr){
console.log(k);
}
3:"遍历对象" for of "遍历对象" 不能直接遍历,因为对象不是可迭代的
const Person={realname:"张三",age:19};
for(let key of Person){
console.log(key);
}
这个结果是错的
下面是正确的遍历方法:先把对象的key值全部放在一个数组arr中,遍历arr,直接输出每个key对应的value
const Person={realname:"张三",age:19};
const keys = Object.keys(Person);//获得所有对象的keys
for(let k of keys){
console.log(`k:${k},v:${Person[k]}`);
}
4:forEach的用法
let arr = [1,2,3,4];
arr.forEach((item,index)=>{
console.log(`v:${item},k:${index}`);
})
三、练习
1: 数组,格式化对象,{name:'张三',birthday:'2020-10-09'} 格式化为
// {name:'张三',birthday:'2020-10-09',age:20}
有疑问可评论
const persons = [
{name:'张三',birthday:'2020-10-09'},
{name:'李四',birthday:'1990-01-17'},
{name:'李元芳',birthday:'2002-03-07'},
{name:'兰陵王',birthday:'1993-08-09'},
]
let newpersons = persons.map((item)=>{
let year = new Date(item.birthday).getFullYear();
let age = new Date().getFullYear()-year;
return {...item,age};
})
let str = '';
// console.log(newpersons);
for (let item of newpersons) {
str = str+`<li>姓名:${item.name},出生日期:${item.birthday},年龄:${item.age}</li>`
}
document.querySelector('ul').innerHTML = str;
2:筛选1题目中年龄小于20的信息。
<body>
<h1>年龄小于20岁</h1>
<p></p>
</body>
<script>
let newage = newpersons.filter(item=>item.age<20);
newage = newage[0];
document.querySelector('p').innerHTML = `姓名:${newage.name},出生日期:${newage.birthday},年龄:${newage.age}`;
</script>
3:一组人员信息,输出到页面上用表格显示。
<body>
<table border="1" id="first">
<thead>
<tr>
<th>姓名</th>
<th>分数</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<script>
const arr3 = [
{ uname: '小红', score: 95 },
{ uname: '小蓝', score: 100 },
{ uname: '小绿', score: 80 },
{ uname: '小明', score: 50 },
{ uname: '小花', score: 56 },
{ uname: '小草', score: 64 },
]
let str = '';
for (const item of arr3) {
str = str+`<tr><td>${item.uname}</td><td>${item.score}</td></tr>`;
}
document.querySelector('#first tbody').innerHTML = str;
</script>
</body>
4:输出一组人员信息,输出到页面信息如下((姓名,分数,是否及格60分);
<body>
<ul></ul>
<script>
let newarr = arr3.map((item)=>{
let pass = item.score>=60?'及格':'不及格';
return {...item,pass}
})
let str1 = ''
for (const item of newarr) {
str1 = str1+`<li>姓名:${item.uname},分数:${item.score},${item.pass}</li>`;
}
// console.log(newarr);
document.querySelector('ul').innerHTML = str1;
</script>
</body>
边栏推荐
- Phospholipid-Polyethylene Glycol-Aldehyde DSPE-PEG-Aldehyde DSPE-PEG-CHO MW: 5000
- 三月底啦啦
- 微信小程序九宫格抽奖和转盘抽奖的实现
- Chemical reagent Phospholipid-polyethylene glycol-hydroxyl, DSPE-PEG-OH, DSPE-PEG-Hydroxyl, MW: 5000
- js basics
- C语言入门小游戏—三子棋
- Usage of JOIN in MySQL
- 微信小程序自定义swiper轮播图面板指示点|小圆点|进度条
- Phospholipid-polyethylene glycol-thiol, DSPE-PEG-Thiol, DSPE-PEG-SH, MW: 5000
- 配置mmdet来训练Swin-Transformer之一配置环境
猜你喜欢
随机推荐
display,visibility,opacity
uniapp | 使用npm update更新后编译报错问题
Amazon sellers how to improve the conversion
DSPE-PEG-PDP, DSPE-PEG-OPSS, phospholipid-polyethylene glycol-mercaptopyridine supply, MW: 5000
6.27面试集
js基础知识
Detailed explanation of the usage of exists in mysql
每日面试题 2022/7/28
js eventLoop 事件循环机制
函数提升和变量提升
DOM manipulation---magnifying glass case
--fs模块--
网址URL
L1-043 阅览室 (20分)
Phospholipid-polyethylene glycol-thiol, DSPE-PEG-Thiol, DSPE-PEG-SH, MW: 5000
js 原型和原型链
语义分割标签即像素值的巨坑,transforms.ToTensor()的错误使用
我的小笔记 =》其他东东
【装机】老毛桃的安装及使用
require模块化语法