本文通过一系列的例子说明数组的方法使用方式,仅介绍方法,并不一定为最优实现
定义两个数组:
let scoreListA=[{name:"name1",score:95},{name:"name2",score:89},{name:"name1",score:100},{name:"name4",score:92}]
let scoreListB=[{name:"name5",score:97},{name:"name6",score:93},{name:"name7",score:95},{name:"name8",score:93}]
1.将scoreListA和scoreListB的数据合并为scoreList(concat)
let scoreList = scoreListA.concat(scoreListB)
2.将数组的最后一个值放在第一个位(unshift,pop)
scoreList.unshift(scoreList.pop())
3.将数组的第一个值放在最后一位(push,shift)
scoreList.push(scoreList.shift())
4.若90分及格100满分,判断是否全部及格和是否存在满分(some,every)
let flag = scoreList.some(item => item.score === 100)
let flag =scoreList.every(item => item.score >= 90)
5.查出所有及格人员的数据(filter)
let lists = scoreList.filter(item => item.score > 90)
6.查出所有人员的姓名(map)
let lists = scoreList.map(item => item.name)
7.查出所有及格人员的姓名(fliter,map,push)
let nameLists = scoreList.filter(item => item.score > 90).map(item => item.name)
8.查出垫底的3人的数据(sort,slice)
let footList= scoreList.sort((a,b) => a.score - b.score).slice(0,3)
9.查出第一位名为name1的人员的分数(find)
let score = scoreList.find(item => item.name> "name1").score
10.查出名为name1的人员的最高分数排名(findIndex)
let index = scoreList.sort((item1,item2) => item2.score - item1.score).findIndex(item => item.name === "name1")
11.判断是否有名为"name8"的人员
let flag = scoreList.map(item => item.name).includes("name8")
12.将所有人的名字用”,”拼起来(map,join)
let nameStr = scoreList.map(item => item.name).join(",")
13.修改最后一个数据为"zhangsan",分数是96(splice)
scoreList.splice(-1,1,{name:"zhangsan",score:96})
14.去除成绩最大最小值,并将最大最小值打印出来,其余分数按从小到大排列,计算出总分(sort,pop,shift,reduce)
let scoreSort = scoreList.sort((item1,item2) => item1.score - item2.score)
let maxScore = scoreSort.pop()
let minScore = scoreSort.shift()
let allScore = scoreSort.reduce((count,item,index,scores) => {count += item.score;return count},0)