Javascript 循环的Vuejs computed属性打印所有值,但仅返回一个值
Vuejs计算属性“for loop”打印所有值,但仅返回一个值Javascript 循环的Vuejs computed属性打印所有值,但仅返回一个值,javascript,vue.js,Javascript,Vue.js,Vuejs计算属性“for loop”打印所有值,但仅返回一个值 computed: { orderedUsers: function () { //console.log(this.bannerData) //console.log(this.subBannerData[0].event_pi[0].id); this.secondSubBanner = [];
computed: {
orderedUsers: function () {
//console.log(this.bannerData)
//console.log(this.subBannerData[0].event_pi[0].id);
this.secondSubBanner = [];
for(let i=0; i<this.bannerData.length;i++){
this.subBanner = this.bannerData[i].pressInformation;
//console.log(this.subBanner.event_pi);
for(let j= 0;j<this.subBanner.length;j++){
this.secondSubBanner = this.subBanner[j].id;
console.log(this.secondSubBanner);// output: 257, 256, 254,261
}
}
return [this.secondSubBanner];
},
sortedArray(){
this.v = this.orderedUsers;
console.log(this.v);// output:261
}
计算:{
orderedUsers:函数(){
//console.log(this.bannerData)
//console.log(this.subBannerData[0].event_pi[0].id);
this.secondSubBanner=[];
对于(设i=0;i您的问题在这里:
this.secondSubBanner=this.subBanner[j].id;
您每次都在重新赋值,因此它只返回循环中的最后一个值
您应该做的是按如下方式推送值:
this.secondSubBanner.push(this.subBanner[j].id);
我很确定您的问题是您将this.secondSubBanner
声明为数组,但随后将其值设置为id。我猜您真正想做的是:
for(让i=0;i现在Console.log(this.v)
在开始时输出一个空数组
[]
(4) [254、256、257、261]
这导致orderBy属性无法对Json进行排序
`sortedArray(){
this.v = this.orderedUsers.sort();
console.log(this.v);//output: 254,256,257,261
return _.orderBy(this.bannerData, this.v)// output: 257,256,254,261
}`
虽然sortedArray()按顺序打印id,但在使用Vuejs的.orderBy
属性时,我没有按顺序获取返回值。为什么返回[this.secondSubBanner]
而不仅仅是这个.secondSubBanner
?而且您似乎没有使用这个.secondSubBanner
作为您声明的数组。我不明白当您一次只分配一个id时,如何输出id列表。更改为这个.secondSubBanner.push(这个.subBanner[j].id);
然后您将附加到list@MattEllen我使用了this.secondSubBanner
周围的数组括号,这样它可以将值作为数组返回,并且我可以根据此数组值对Json进行排序。感谢您的自发回复。这对我有帮助。我认为这是一个单独的问题,我已经尝试过投票,但我没有收到此通知。“感谢反馈!记录声誉低于15的人的投票,但不要更改公开显示的帖子分数”
`sortedArray(){
this.v = this.orderedUsers.sort();
console.log(this.v);//output: 254,256,257,261
return _.orderBy(this.bannerData, this.v)// output: 257,256,254,261
}`