Google反向地理编码为我提供了这样的结果
this._sub2 = this.props.navigation.addListener(
'didBlur',
() => {
console.log('in didBlur for HomeScreen');
this.setState({info: this.props.navigation.getParam('data', '')})
this.setState({showRespondTo: false});
}
);
以下是用于获取“邻居”长名称的结果的代码:
results: [
{address_components: [
{long_name: "New York",
short_name: "NY",
types: ["neighborhood"]},]
{address_components: [
{long_name: "London",
short_name: "LN",
types: ["sublocality_level_1"]},]}]
如果第一个条件为真,为什么会显示伦敦的结果?它应该控制纽约,还是我弄错了?
答案 0 :(得分:0)
因为console.log(storableLocation)
在两个循环之外,所以您看到的是分配给var storableLocation
的第二个值。您没有看到分配给变量的第一个值,因为到console.log
时,循环已经完成,并在else if语句中将storableLocation
重新分配给了伦敦。
相反,您应该执行以下操作:
var results = [ {address_components: [
{long_name: "New York",
short_name: "NY",
types: ["neighborhood"]}]},
{address_components: [
{long_name: "London",
short_name: "LN",
types: ["sublocality_level_1"]}]}]
loop1:
for (i = 0; i < results.length; i++) {
var storableLocation;
loop2:
for (var acd = 0; acd < results[i].address_components.length; acd++) {
var fff = results[i].address_components[acd];
if(fff.types.includes("neighborhood")) {
storableLocation = fff.long_name;
console.log(storableLocation)
break loop1;
}
else if (fff.types.includes("sublocality_level_1")){
storableLocation = fff.long_name;
}
}
}