【问题标题】:Merge multiple array in lodash在lodash中合并多个数组
【发布时间】:2018-04-04 13:07:41
【问题描述】:

我想将这些数组合并为具有唯一值的单个数组。 不希望重复值。

0:Array(2) ["General Fitness", "Health & Fitness"]
1:Array(2) ["Cardiovascular", "Meditation"]
2:Array(3) ["Health & Fitness", "Cardiovascular", "General Fitness"]
3:Array(1) ["Cardiovascular"]

我期待这个答案:

["General Fitness", "Health & Fitness", "Cardiovascular", "Meditation"]

【问题讨论】:

标签: node.js lodash


【解决方案1】:

使用 lodash,您可以使用 _.union()_.spread() 生成一个函数,该函数可以展平为具有唯一值的单个数组:

const fn = _.spread(_.union);

const arrs = [ 
  ["General Fitness", "Health & Fitness"],
  ["Cardiovascular", "Meditation"],
  ["Health & Fitness", "Cardiovascular", "General Fitness"],
  ["Cardiovascular"]
];

const result = fn(arrs);

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>

使用 ES6,您可以 flatten 数组,并通过将结果通过 Setspreading 传递回数组来使结果唯一:

const arrs = [ 
  ["General Fitness", "Health & Fitness"],
  ["Cardiovascular", "Meditation"],
  ["Health & Fitness", "Cardiovascular", "General Fitness"],
  ["Cardiovascular"]
];

const result = [...new Set(arrs.flat())];

console.log(result);

【讨论】:

    【解决方案2】:

    const arrs = [ 
      ["General Fitness", "Health & Fitness"],
      ["Cardiovascular", "Meditation"],
      ["Health & Fitness", "Cardiovascular", "General Fitness"],
      ["Cardiovascular"]
    ];
    
    const result = _.uniq(_.flatten(arrs));
    
    console.log(result);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>

    【讨论】:

      【解决方案3】:

      使用union

      var object =  ["General Fitness", "Health & Fitness"];
      var other =  ["Cardiovascular", "Health & Fitness", "Meditation"]
       
      _.union(object, other);
      
      // ["General Fitness", "Health & Fitness", "Cardiovascular", "Meditation"]
      <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-09-06
        • 1970-01-01
        • 2021-12-10
        • 2015-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多