创建从对象数组中提取的单个 属性 的数组

Create an array of a single property extracted from an array of objects

我正在尝试将每个对象的 属性 从对象数组推送到另一个数组。

这是我的代码:

for (var i = 0; i < arr2.length; i++) {
  var dates = [];
  dates.push(arr2[i].date);
}
console.log(dates);

这是数据:

var arr2 = [{"id":"1","exchange_symbol":"TSE","currency":"JPY","stock_id":"1","stock_name":"KYOKUYO CO.,LTD.","stock_symbol":"1301.T","date":"2006-12-29","time":"15:00:00.000000","close":"2388.023438000000000000","volume":"23700.000000000000000000","active":"1","exchange_id":"0"},{"id":"2","exchange_symbol":"TSE","currency":"JPY","stock_id":"1","stock_name":"KYOKUYO CO.,LTD.","stock_symbol":"1301.T","date":"2007-01-04","time":"15:00:00.000000","close":"2416.452637000000000000","volume":"16500.000000000000000000","active":"1","exchange_id":"0"},{"id":"3","exchange_symbol":"TSE","currency":"JPY","stock_id":"1","stock_name":"KYOKUYO CO.,LTD.","stock_symbol":"1301.T","date":"2007-01-05","time":"15:00:00.000000","close":"2369.071045000000000000","volume":"45400.000000000000000000","active":"1","exchange_id":"0"},{"id":"4","exchange_symbol":"TSE","currency":"JPY","stock_id":"1","stock_name":"KYOKUYO CO.,LTD.","stock_symbol":"1301.T","date":"2007-01-09","time":"15:00:00.000000","close":"2388.023438000000000000","volume":"28800.000000000000000000","active":"1","exchange_id":"0"}];

我期待我的 console.log(dates) 看起来像这样:

"2006-12-29"
"2007-01-04"
"2007-01-05"
"2007-01-09"

但我明白了:

[Object {"id":"4","exchange_symbol":"TSE","currency":"JPY","stock_id":"1","stock_name":"KYOKUYO CO.,LTD.","stock_symbol":"1301.T","date":"2007-01-09","time":"15:00:00.000000","close":"2388.023438000000000000","volume":"28800.000000000000000000","active":"1","exchange_id":"0"}];

您的代码有两个问题:

1) 结果数组在循环的每次迭代中重新初始化

2) 您需要专门访问源对象的 .date 属性(已在编辑中修改)

var dates = [];

for (var i = 0; i < arr2.length; i++) {
  dates.push(arr2[i].date);
}

console.log(dates);

您还可以使用 Array#map 将一个函数应用到数组中的每个元素,然后 return 应用一个新元素:

const dates = arr2.map(e => e.date);
console.log(dates);