<template>
<div class="key">
<pre>{{ stuIdList }}</pre>
<div>学生总成绩为:{{ totalScore }}分</div>
<div>学生求平均数:{{ averageScore }}分</div>
<pre>取值{{ getValue }}</pre>
<div>张三的平均成绩:{{ firstStuAverageScore }}</div>
<div>李四的平均成绩:{{ secondStuAverageScore }}</div>
<div>刘能的平均成绩:{{ thirdStuAverageScore }}</div>
</div>
</template>
<script>
import Enumerable from 'linq'
export default {
name: "keywords",
data() {
return {
isShow: false,
defaultHeight: '',
nowHeight: '',
stuData: [
{id: 1, name: '张三', phone: 15822698996, subject: '语文', score: 88},
{id: 2, name: '张三', phone: 15822698996, subject: '数学', score: 56},
{id: 3, name: '张三', phone: 15822698996, subject: '英语', score: 87},
{id: 4, name: '李四', phone: 18522158390, subject: '语文', score: 90},
{id: 5, name: '李四', phone: 18522158390, subject: '数学', score: 71},
{id: 6, name: '李四', phone: 18522158390, subject: '英语', score: 89},
{id: 7, name: '刘能', phone: 17695996601, subject: '语文', score: 100}
],
stuIdList: [],
totalScore: 0,
averageScore: 0,
getValue: 0,
firstStuAverageScore: 0,
secondStuAverageScore: 0,
thirdStuAverageScore: 0,
}
},
created() {
this.showId()
// this.showInfo()
},
methods: {
showId() {
// this.stuIdList = Enumerable.from(this.stuData).skip(5).take(5).toArray()
let res = Enumerable.from(this.stuData)
// this.stuIdList = res.where(item => item.score > 70 && item.subject === '英语' || item.subject === '数学')
// .toArray()
//语文学科降序排序
//this.stuIdList=res.where(item=>item.subject=='语文').orderByDescending(item=>item.score).toArray()
//语文学科升序排序
//this.stuIdList=res.where(item=>item.subject=='语文').orderBy(item=>item.score).toArray()
//.thenBy方法是后执行的
//this.stuIdList=res.orderBy(item=>item.subject).thenByDescending(item=>item.score).toArray()
//this.totalScore = this.stuData.map(item => item.score).reduce((pre, n) => pre + n)
//linq求和方法
this.totalScore = res.sum(item => (item.score))
console.log(res)
//linq求平均数
this.averageScore = res.average(item => item.score)
//获取学生成绩升序排列的第一条数据
this.getValue = res.orderBy(item => item.score).lastOrDefault()
//获取成绩在70-90之间的学生的升序排列
this.stuIdList = res.where(item => (item.score > 70 && item.score < 90)).orderBy(item => item.score).toArray()
//计算每个学生的平均成绩
this.stuIdList = Enumerable.from(this.stuData).groupBy(item => item.name).select(item => ({
key: item.key(),
averageScore: item.average(item => item.score)
})).toArray()
// this.firstStuAverageScore=Enumerable.from(this.stuIdList).average(item=>item.source.score)
this.stuIdList = res.groupBy(item => item.name).select(item => ({
name: item.key(),
info: item.getSource()
})).toArray().map(item => {
return {
stuName: item.name,
phone: item.info[0].phone,
//totalScore:Enumerable.from(item.info).sum(item=>item.score),
totalScore:item.info.map(item=>item.score).reduce((pre,n)=>pre+n),
averageScore:(Enumerable.from(item.info).average(item=>item.score)).toFixed(2)
}
})
},
showInfo() {
this.stuIdList = this.stuData.map(item => {
return {
stuId: item.id,
stuName: item.name,
add: item.phone + item.score
}
})
},
stuAverageScore(name) {
let res = Enumerable.from(this.stuData)
return res.where(item => item.name == name).average(item => item.score)
}
}
}
</script>
<style scoped>
</style>
Linq+js
最新推荐文章于 2024-06-20 09:41:11 发布
该博客主要展示了如何使用Linq库对一组学生数据进行操作,包括筛选、排序、求和、平均数计算等。通过示例代码,作者演示了如何获取特定条件的数据子集,如成绩在70-90之间的学生,以及计算每个学生的平均成绩。此外,还展示了如何根据学生姓名分组数据并计算平均分。
4289

被折叠的 条评论
为什么被折叠?



