首页 > 解决方案 > Fetch unique elements from Array of Array

问题描述

I have a Array of String array i want to fetch the unique elements from that array ignoring the case. how can i fetch Example:

List of array:

[
       ["java,C,Node,ReactJs"]
        ["c","Spring"]
        ["undefined"]
        ["asdja"]
        ["Java","Spring"]
        ["adjasjh"]
        ["adjasjh"]
        ["java"] 
]

ExpectedList:

[java,C,node,reactjs,spring,..]

标签: javascriptarraysnode.jslist

解决方案


加入数组,改成小写,用逗号分割,转换成Set得到唯一词,然后回数组:

const arr = [["java,NO,C,Node,ReactJs"],["c","Spring"],["undefined"],["asdja"],["Java","Spring"],["adjasjh", "Spring-roll"],["adjasjh"],["java", "javascript", "java-script"]];

const result = [...new Set(arr.join().toLowerCase().split(','))];

console.log(result);

较旧的答案 - 并非在所有情况下都有效:

您可以加入数组数组,并使用String.match()前瞻 RegExp来获取唯一字符串:

const arr = [["java,NO,C,Node,ReactJs"],["c","Spring"],["undefined"],["asdja"],["Java","Spring"],["adjasjh", "Spring-roll"],["adjasjh"],["java", "javascript", "java-script"]];

const result = arr.join()
  .match(/([^,]+\b)(?!.+\1[,|$])/ig);

console.log(result);


推荐阅读