为了账号安全,请及时绑定邮箱和手机立即绑定

数组里面的状态切换

数组里面的状态切换

皈依舞 2018-07-06 13:17:13
数组里面的状态为true和false,我想把为前三个为true的,就为true,后面的还有true的变为false怎么实现呢?现在我的数组里面有name 和 status let data=[        {name:"小明",status:false},        {name:"小红",status:false},        {name:"小张",status:true},//一次出现        {name:"小墙",status:false},        {name:"小粉",status:false},        {name:"小军",status:false},        {name:"小钰",status:false},        {name:"小访",status:true},//二次出现        {name:"小源",status:false},        {name:"小方式",status:false},        {name:"小佛",status:true},//三次出现  三次之后  还有true的变为false        {name:"小付款",status:true},        {name:"小哦咯",status:true},        {name:"小来了",status:false},    ]         console.log(data);我想把从第一个开始算,一直到出现过三个true,然后把剩下的都变为false,这个怎么实现呢?
查看完整描述

3 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

        let data = [

            { name: "小明", status: false },

            { name: "小红", status: false },

            { name: "小张", status: true },//一次出现

            { name: "小墙", status: false },

            { name: "小粉", status: false },

            { name: "小军", status: false },

            { name: "小钰", status: false },

            { name: "小访", status: true },//二次出现

            { name: "小源", status: false },

            { name: "小方式", status: false },

            { name: "小佛", status: true },//三次出现  三次之后  还有true的变为false

            { name: "小付款", status: true },

            { name: "小哦咯", status: true },

            { name: "小来了", status: false },

        ];

        let count = 0;

        data.forEach(obj => {

            if (count >= 3) {

                obj.status = false;

                return;

            }

            if (obj.status) {

                count++;

            }

        })

        console.log(data);


查看完整回答
反对 回复 2018-07-12
?
忽然笑

TA贡献1806条经验 获得超5个赞

let total = 0;

let result = data.map(k => {     

   if(k.status) {total++};

   if(total>3 && k.status) {k.status=false}

   return k;

});


查看完整回答
反对 回复 2018-07-12
?
狐的传说

TA贡献1804条经验 获得超3个赞

let count = 0;

for(let item of data){

    if(count < 3){

        item.status && ++count

    }else{

        item.status = false;

    }

}


查看完整回答
反对 回复 2018-07-12
  • 3 回答
  • 0 关注
  • 184 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信