javascript - 无法使用对象的键访问对象的 属性?
javascript - can't access property of an object using its key?
在 Google 地球编辑器中,我们使用 reduceRegion() 函数创建了一个对象:
var meanValue2015 = ndvi2015.reduceRegion({
reducer: ee.Reducer.mean(),
geometry: justEC15.geometry(),
crs: 'EPSG:4326',
scale: 30,
});
我的问题是 meanValue2015 似乎是一个对象 - 我输入
print(meanValue2015);
print(typeof(meanValue2015));
print(Object.keys(meanValue2015));
并分别得到 "Object (1 property) - NDVI: 0.3177..."、"Object",然后是“[ ]”?然后
print(meanValue2015.NDVI);
print(meanValue2015['NDVI']);
未定义?有什么明显的我做错了吗?
meanValue2015 是一个 Earth Engine 对象:一个字典。所以..
var meanValue2015 = ndvi2015.reduceRegion({
reducer: ee.Reducer.mean(),
geometry: justEC15.geometry(),
crs: 'EPSG:4326',
scale: 30,
});
var realValue = ee.Number(meanValue2015.get("ndvi"));
print("real value (object):", realValue)
// realValue is a EE object, so you have to use it as is..
// this would be easy, but it is wrong..
var newValueWrong = realValue + 1
// this is the right way..
var newValueRight = realValue.add(ee.Number(1))
print("wrong:", newValueWrong)
print("right:", newValueRight)
// there is another way, but it is not recommendable because you'd
// be wasting EE computing capacity (Google's gift! don't waste it)
var localValue = realValue.getInfo() + 1
print("value in the local scope (try to avoid)", localValue)
在 Google 地球编辑器中,我们使用 reduceRegion() 函数创建了一个对象:
var meanValue2015 = ndvi2015.reduceRegion({
reducer: ee.Reducer.mean(),
geometry: justEC15.geometry(),
crs: 'EPSG:4326',
scale: 30,
});
我的问题是 meanValue2015 似乎是一个对象 - 我输入
print(meanValue2015);
print(typeof(meanValue2015));
print(Object.keys(meanValue2015));
并分别得到 "Object (1 property) - NDVI: 0.3177..."、"Object",然后是“[ ]”?然后
print(meanValue2015.NDVI);
print(meanValue2015['NDVI']);
未定义?有什么明显的我做错了吗?
meanValue2015 是一个 Earth Engine 对象:一个字典。所以..
var meanValue2015 = ndvi2015.reduceRegion({
reducer: ee.Reducer.mean(),
geometry: justEC15.geometry(),
crs: 'EPSG:4326',
scale: 30,
});
var realValue = ee.Number(meanValue2015.get("ndvi"));
print("real value (object):", realValue)
// realValue is a EE object, so you have to use it as is..
// this would be easy, but it is wrong..
var newValueWrong = realValue + 1
// this is the right way..
var newValueRight = realValue.add(ee.Number(1))
print("wrong:", newValueWrong)
print("right:", newValueRight)
// there is another way, but it is not recommendable because you'd
// be wasting EE computing capacity (Google's gift! don't waste it)
var localValue = realValue.getInfo() + 1
print("value in the local scope (try to avoid)", localValue)