【问题标题】:Lodash get key values from array of objectsLodash 从对象数组中获取键值
【发布时间】:2016-07-09 16:54:31
【问题描述】:

我有一个arrayobjects

var out = [{
    "type": "1",
    "from": "13052033555",
    "to": "4444444",
    "amount": "40000",
    "date": 1461575799,
    "status": "1"
  }, {
    "type": "2",
    "from": "13052033555",
    "to": "1111111",
    "amount": "30000",
    "date": 1461575884,
    "status": "1"
  }...
];

没有keys,我只得到它的值

现在我使用这个函数从数组中获取值,如下所示, 我传递数组然后它只返回没有键的值

function foo(a) {
  var values = [];
  for (var i = 0; i < a.length; i++) {
    var obj = a[i];
    var arr = Object.keys(obj).map(function(k) {
      return obj[k]
    });
    values.push("[" + arr + "],");
  }
  return values.join('');
}

然后它返回没有像这样的键的值数据,

[ ["1","13052033555","4444444","40000",1461575799,"1"],
  ["2","13052033555","1111111","30000",1461575884,"1"],
    ....]

问题:如何将我的 foo 函数更改为 lodash?

【问题讨论】:

  • out.map(obj =&gt; _.values(obj))
  • 其他解决方案out.map((e)=&gt;Object.keys(e).map((key)=&gt;e[key]))

标签: javascript arrays lodash


【解决方案1】:

使用_.values()

    var out = [{
        "type": "1",
        "from": "13052033555",
        "to": "4444444",
        "amount": "40000",
        "date": 1461575799,
        "status": "1"
      }, {
        "type": "2",
        "from": "13052033555",
        "to": "1111111",
        "amount": "30000",
        "date": 1461575884,
        "status": "1"
      }
    ];

    for (var i = 0; i < out.length; i++) {
      out[i] = _.values(out[i]);
    }
    

console.log(out)
&lt;script src="https://cdn.jsdelivr.net/lodash/4.13.1/lodash.min.js"&gt;&lt;/script&gt;

【讨论】:

    【解决方案2】:

    out.map(_.values);

    或者如果低于 ES5:_.map(out, _.values);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-05
      • 1970-01-01
      • 2018-05-13
      • 2021-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多