红颜莎娜
您可以使用一个对象来存储每个值的频率,并仅获取频率为 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));
HUX布斯
这个解决方案的复杂度可能不好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);