Javascript 在返回新对象之前,我可以从该对象获取数据吗?
在下面的代码片段中,Javascript 在返回新对象之前,我可以从该对象获取数据吗?,javascript,Javascript,在下面的代码片段中,hour:+date.getHours()将抛出错误ReferenceError:date未定义 data = d.Data.slice(0, ncandles).map(function(d) { return { date: new Date(d.time * 1000), hour: date.getHours(), //date is not defined open: +
hour:+date.getHours()
将抛出错误ReferenceError:date未定义
data = d.Data.slice(0, ncandles).map(function(d) {
return {
date: new Date(d.time * 1000),
hour: date.getHours(), //date is not defined
open: +d.open,
high: +d.high,
low: +d.low,
close: +d.close,
volume: +d.volume
};
}).sort(function(a, b) { return d3.ascending(accessor.d(a), accessor.d(b)); });
到目前为止,我获得小时数的唯一方法是创建一个新对象,行为hour:newdate(d.time*1000).getHours()
,如下所示。在已经创建了新对象的情况下创建新对象似乎是多余和低效的。如何在此范围内处理date
中的数据
data = d.Data.slice(0, ncandles).map(function(d) {
return {
date: new Date(d.time * 1000),
hour: new Date(d.time * 1000).getHours(),
open: +d.open,
high: +d.high,
low: +d.low,
close: +d.close,
volume: +d.volume
};
}).sort(function(a, b) { return d3.ascending(accessor.d(a), accessor.d(b)); });
另一种方式
data = d.Data.slice(0, ncandles)
.map(function(d) {
let obj = {
date: new Date(d.time * 1000),
open: +d.open,
high: +d.high,
low: +d.low,
close: +d.close,
volume: +d.volume,
}
obj.hour = obj.date.getHours()
return obj
})
.sort(function(a, b) {
return d3.ascending(accessor.d(a), accessor.d(b))
})
另一种方式
data = d.Data.slice(0, ncandles)
.map(function(d) {
let obj = {
date: new Date(d.time * 1000),
open: +d.open,
high: +d.high,
low: +d.low,
close: +d.close,
volume: +d.volume,
}
obj.hour = obj.date.getHours()
return obj
})
.sort(function(a, b) {
return d3.ascending(accessor.d(a), accessor.d(b))
})
非常感谢。因此,必须在
返回
块之外创建对象,然后才能在块的范围内使用它?“返回块”实际上是一个对象;所以你可以创建一个对象,给它添加属性,然后返回它;但在创建时不能使用它的属性。谢谢。因此,必须在返回
块之外创建对象,然后才能在块的范围内使用它?“返回块”实际上是一个对象;所以你可以创建一个对象,给它添加属性,然后返回它;但在创建时不能使用其属性。