【问题标题】:Empty array when using _.unique to return distinct value in object使用 _.unique 在对象中返回不同值时的空数组
【发布时间】:2017-05-25 10:25:17
【问题描述】:

我有一个这样的对象

data: [
  {
    "Type":"100, S4",
    "Model":"1 serie, e82",
    "Manufacturer":"BMW",
    "Vehicle":"Cars"
  },
  {
    "Type":"type 2",
    "Model":"a serie",
    "Manufacturer":"Toyota",
    "Vehicle":"Cars"
  },
  {
    "Type":"type 3",
    "Model":"v4",
    "Manufacturer":"Toyota",
    "Vehicle":"SUVs"
  }
]

然后我使用 jquery 和 lodash 库期望从对象返回不同的值。

尝试 #1:

  $.each( data, function( i, value ) {
    var vehicles = _.uniqBy(value);
    console.log(vehicles);
  });

结果:在 console.log 中打印了 3 个空数组

尝试 #2:

  $.each( data, function( i, value ) {
    var vehicles = _.uniqBy(value.Vehicle);
    console.log(vehicles);
  });

结果:分割字符内有 4 个数组

(4) ["C", "a", "r", "s"]
(4) ["C", "a", "r", "s"]
(4) ["S", "U", "V", "s"]

我希望里面有一个数组

["Cars", "SUVs"]

我该如何处理呢?感谢您的帮助!

【问题讨论】:

    标签: jquery lodash


    【解决方案1】:

    您可以使用lodash#map 获取所有Vehicle 属性字符串,然后使用lodash#uniq 删除所有重复字符串。

    var result = _(data).map('Vehicle').uniq().value();
    

    var data = [
      {
        "Type":"100, S4",
        "Model":"1 serie, e82",
        "Manufacturer":"BMW",
        "Vehicle":"Cars"
      },
      {
        "Type":"type 2",
        "Model":"a serie",
        "Manufacturer":"Toyota",
        "Vehicle":"Cars"
      },
      {
        "Type":"type 3",
        "Model":"v4",
        "Manufacturer":"Toyota",
        "Vehicle":"SUVs"
      }
    ];
    
    var result = _(data).map('Vehicle').uniq().value();
    
    console.log(result);
    body > div { top: 0; }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.js"></script>

    【讨论】:

      【解决方案2】:

      试试这个

      var vehicles  = _.uniqBy(data, function (e) {
            return e.Vehicle;
          }).map(function(veh){
          return veh.Vehicle;
      });   
      console.log(vehicles);
      

      【讨论】:

        猜你喜欢
        • 2017-07-17
        • 2016-07-28
        • 1970-01-01
        • 2021-10-07
        • 2020-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-02
        相关资源
        最近更新 更多