Javascript 循环的Vuejs computed属性打印所有值,但仅返回一个值

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 = [];

Vuejs计算属性“for loop”打印所有值,但仅返回一个值

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
            }`