亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從多個數組中獲取唯一值

從多個數組中獲取唯一值

大話西游666 2022-10-21 10:18:10
這是我擁有的數組:var a = [A];var b = [F, A];var c = [B, A];var d = [C, B, A];var e = [D, C, B, A];var f = [E, C, B, A];var g = [G, E, C, B, A];我想運行一個函數并獲取只出現一次的元素列表,所以輸出應該是:[F, D, G]謝謝!
查看完整描述

2 回答

?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

您可以使用一個對象來存儲每個值的頻率,并僅獲取頻率為 1 的條目。下面的代碼.flat(Infinity)用于確保它適用于任何級別的嵌套數組;如果您沒有任何嵌套數組,只需使用即可.flat()。

var a = ['A'];

var b = ['F', 'A'];

var c = ['B', 'A'];

var d = ['C', 'B', 'A'];

var e = ['D', 'C', 'B', 'A'];

var f = ['E', 'C', 'B', 'A'];

var g = ['G', 'E', 'C', 'B', 'A'];

function getUniqueValues(...args){

  return Object.entries(

      args.flat(Infinity)

          .reduce((acc,curr)=>(acc[curr] = (acc[curr] ?? 0) + 1, acc), {})

    ).filter(([key,val])=>val===1).map(([key])=>key);

}

console.log(getUniqueValues(a,b,c,d,e,f,g));



查看完整回答
反對 回復 2022-10-21
?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

這個解決方案的復雜度可能不好


const input: string[][] =

  [['A'],

  ['F', 'A'],

  ['B', 'A'],

  ['C', 'B', 'A'],

  ['D', 'C', 'B', 'A'],

  ['E', 'C', 'B', 'A'],

  ['G', 'E', 'C', 'B', 'A']];

let output: string[] = [];

let flagged: string[] = [];


input.filter(innerArray => {

    innerArray.filter(elem => {

        if(!output.includes(elem) && !flagged.includes(elem))

            output.push(elem);

        else

        {

            flagged.push(elem);

            output = output.filter(i => { return i !== elem });

        }

    });

});


console.log(output);


查看完整回答
反對 回復 2022-10-21
  • 2 回答
  • 0 關注
  • 104 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號