第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

從對象數(shù)組中刪除重復(fù)項(xiàng)

從對象數(shù)組中刪除重復(fù)項(xiàng)

天涯盡頭無女友 2023-03-10 13:55:56
嗨,我正在嘗試使用 id 從對象數(shù)組中刪除重復(fù)項(xiàng),但 id 為 null 那么該對象應(yīng)包含那些 null id 并刪除其他重復(fù)項(xiàng)這是對象數(shù)組示例:const arr = [  {    id: 6652,    value: "erger"  },  {    id: 6652,    value: "sdfs"  },  {    id: 6653,    value: "sdgdfg"  },  {    id: 6000,    value: "trgd"  },  {    id: 6667,    value: "asdf"  },  {    id: 6667,    value: "fdg"  },  {    id: 6668,    value: "dfgr"  },  {    id: null,    value: "fg"  },  {    id: null,    value: "dfgdf"  },  {    id: null,    value: "fg"  },  {    id: null,    value: "dfgdf"  }];下面是最終結(jié)果array = [{    id: 6652    value: "sdfs"  },  {    id: 6653    value: "sdgdfg"  },  {    id: 6000    value: "trgd"  },  {    id: 6667    value: "fdg"  },  {    id: 6668    value: "dfgr"  },  {    id: null    value: "fg"  },  {    id: null    value: "dfgdf"  },  {    id: null    value: "fg"  },  {    id: null    value: "dfgdf"  }]在上面的結(jié)果中,刪除了 6652 和 6667,因?yàn)樗鼈兪侵貜?fù)的,但是保留了空 ID,因?yàn)槲也幌雱h除空 ID 并刪除其他重復(fù)值。下面是我正在嘗試使用的邏輯,但如果 id 為 null,它就不起作用array= array.filter((v,i,a)=>a.findIndex(t=>( v.id !== null && t.id === v.id ))===i)
查看完整描述

3 回答

?
MM們

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊

const filterKeys = {};

const filtered = arr.reduce((acc, item) => {

  if (item.id === null || !(item.id in filterKeys)) {

    filterKeys[item.id] = true;

    acc.push(item);

  }


  return acc;

}, []);

在這種情況下,創(chuàng)建一個(gè)單獨(dú)的對象來跟蹤遇到的對象 ID filterKeys。


因?yàn)閍rray是一個(gè)數(shù)組,所以做一個(gè) reduce 來遍歷數(shù)組。如果id為 nuil 或未在 中找到filterKeys,則將該項(xiàng)目推入累加器并將其返回以用于下一次迭代。由于我們不關(guān)心為 null 的 id,因此它們沒有效果,因此不會(huì)被過濾掉。


查看完整回答
反對 回復(fù) 2023-03-10
?
慕標(biāo)琳琳

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊

使用下面的代碼,我用你的對象數(shù)組測試(工作):


    arr.forEach(function (item) {


        if (item.id == null) {

            result.push(item);

        }

        else {

            var index = result.findIndex(x => x.id == item.id);

            if (index == -1)

            {

                result.push(item);

            }

           

        }

    });

    console.log(result)


查看完整回答
反對 回復(fù) 2023-03-10
?
慕后森

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

你可以試試這個(gè) -


const array = [{ id: 6652, value: 'erger' },{ id: 6652, value: 'sdfs' },{ id: 6653, value: 'sdgdfg' },{ id: 6000, value: 'trgd' },{ id: 6667, value: 'asdf' },{ id: 6667, value: 'fdg' },{ id: 6668, value: 'dfgr' },{ id: null, value: 'fg' },{ id: null, value: 'dfgdf' },{ id: null, value: 'fg' },{ id: null, value: 'dfgdf' },];

let index = 0;

const result = Object.values(

    array.reduce(

        (acc, curr) =>

            curr.id === null ? { ...acc, [index++]: curr } : { ...acc, [curr.id]: curr },

        {}

    )

);


console.log(result);

.as-console-wrapper {min-height: 100%; top: 0}


查看完整回答
反對 回復(fù) 2023-03-10
  • 3 回答
  • 0 關(guān)注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號