通过api获取 某年 参加赛事超过一定次数的名单。
问题:js数组中包含 __ob__: Observer属性
这是 vue中接口请求 使用 push造成的,通过改写使用promise 和 异步 返回一个 promise对象,然后集中在一个函数中处理,
就没有这个问题
!<template>
<div class="test">
dddddddddddddddd
</div>
</template>
<script>
let { log } = console
export default {
name: 'test',
data(){
return{
list:[]
}
},
mounted () {
this.test(2015,10)
},
methods: {
news (year,page) {
let api = `https://jsonmock.hackerrank.com/api/football_matches?competition=UEFA%20Champions%20League&year=${year}&page=${page}`
return new Promise((resolve) => {
this.$axios({
url: api,
method: "get",
params: {}
}).then(res => {
let data = res.data.data
resolve(data)
})
})
},
async test(year,k){
this.list = []
let item = []
for(let i = 1;i<=13;i++){
let bool = await this.news(year,i)
bool.forEach(element => {
if(this.list.length>0&&JSON.stringify(this.list).includes(element.team1)){
this.list.forEach(el=>{
if(el.name === element.team1 ){
el.counter+=1
}
})
}else{
let tt = {}
tt.name = element.team1
tt.counter = 1
this.list.push(tt)
}
if(this.list.length>0&&JSON.stringify(this.list).includes(element.team2)){
this.list.forEach(el=>{
if(el.name === element.team2 ){
el.counter+=1
}
})
}else{
let tt = {}
tt.name = element.team2
tt.counter = 1
this.list.push(tt)
}
});
if(i===13){
this.list.forEach(el=>{
if(el.counter>=k){
item.push(el.name)
}
})
}
}
log(item)
}
}
}
</script>
<style>
</style>