将对象数组转换为每个对象的特定属性数组

时间:2014-07-21 22:44:30

标签: javascript mysql node.js

我正在使用felixge / node-mysql来运行此查询: " SELECT DISTINCT tablename.id FROM tablename"

返回的行(显然)采用以下格式: [{id:123},{id:234},{id:345}]

我无法弄清楚如何获得这个: [123,234,345]

2 个答案:

答案 0 :(得分:1)

使用ES5,使用map transformation

非常容易
  

map()方法创建一个新数组,其结果是在此数组中的每个元素上调用提供的函数。

例如:

var arr = [{id: 123},{id: 234},{id: 345}];
var res = arr.map(function (o) {
   return o.id;
});

使用循环“手动”执行此操作将如此:

var arr = [{id: 123},{id: 234},{id: 345}];
var res = [];
// Loop over the array
for (var i = 0; i < arr.length; i++) {
  var item = arr[i];
  // And add new value we want to result array
  res.push(item.id);
}

(请注意,变量是功能范围的,但我更喜欢使用var的“近距离放置”。)

答案 1 :(得分:0)

您可以使用lodashunderscore

var _ = require('lodash'); // or 'underscore'

var a = [{id: 123},{id: 234},{id: 345}];

var b = _.pluck(a, 'id');

console.log(b); // [123, 234, 345]