创建从对象数组中提取的单个 属性 的数组
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);
我正在尝试将每个对象的 属性 从对象数组推送到另一个数组。
这是我的代码:
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);