Javascript 如何从数组中仅获取经度和纬度

Javascript 如何从数组中仅获取经度和纬度,javascript,react-native,Javascript,React Native,Noob提出了一些问题,但找不到一个好答案, 我试图只得到经度和纬度,最好是用不同的字符串。目前它可以工作,但它记录了以下内容: Object { "coords": Object { "accuracy": 5, "altitude": 0, "altitudeAccuracy": -1, "heading": -1, "latitude": 37.785834, "longitude": -122.406417, "speed":

Noob提出了一些问题,但找不到一个好答案, 我试图只得到经度和纬度,最好是用不同的字符串。目前它可以工作,但它记录了以下内容:

Object {
  "coords": Object {
    "accuracy": 5,
    "altitude": 0,
    "altitudeAccuracy": -1,
    "heading": -1,
    "latitude": 37.785834,
    "longitude": -122.406417,
    "speed": -1,
  },
  "timestamp": 1577094980806.544,
这是代码:

import styled from "styled-components";
import * as Permissions from "expo-permissions";
import * as Location from "expo-location";

export default class GetLocation extends React.Component {
  state = {
    location: {},
    errorMessage: ""
  };

  constructor(props) {
    super(props);
    this.state = {
      longitude: [],
      latitude: []
    };
  }

  componentDidMount() {
    this._getLocation();
  }

  _getLocation = async () => {
    const { status } = await Permissions.askAsync(Permissions.LOCATION);

    if (status !== "granted") {
      console.log("PERMISSION NOT GRANTED!");

      this.setState({
        errorMessage: "PERMISSION NOT GRANTED"
      });
    }
    const location = await Location.getCurrentPositionAsync();
    this.setState({
      location
    });
    return location.JSON;
  };

  render() {
    console.log(this.state.location);

    return (
      <View>
        <Text>{JSON.stringify(this.state.location)}</Text>
      </View>
    );
  }
}

const View = styled.View``;
const Text = styled.Text`
  font-size: 12px;
  color: black;
`;
从“样式化组件”导入样式化;
从“expo Permissions”导入*作为权限;
从“世博会地点”导入*作为地点;
导出默认类GetLocation扩展React.Component{
状态={
地点:{},
错误信息:“
};
建造师(道具){
超级(道具);
此.state={
经度:[],
纬度:[]
};
}
componentDidMount(){
这个;
}
_getLocation=async()=>{
const{status}=wait Permissions.askAsync(Permissions.LOCATION);
如果(状态!=“已授予”){
log(“未授予权限!”);
这是我的国家({
错误消息:“未授予权限”
});
}
const location=await location.getCurrentPositionAsync();
这是我的国家({
位置
});
return location.JSON;
};
render(){
console.log(this.state.location);
返回(
{JSON.stringify(this.state.location)}
);
}
}
const View=styled.View`;
const Text=styled.Text`
字体大小:12px;
颜色:黑色;
`;

我想导出经度和纬度。我知道代码有点乱。非常感谢您的建议。

您是否尝试通过以下方式访问:

console.log(this.state.location.coords.latitude);

无需解析JSON,它已经是一个对象:

 const location = await Location.getCurrentPositionAsync();
    this.setState({
      location : {
        lat: location.coords.latitude,
        lon: location.coords.longitude
      }
    });
呈现:

 <View>
    <Text>{this.state.location.lat} {this.state.location.lon} </Text>
  </View>

{this.state.location.lat}{this.state.location.lon}
您可以使用

试试这个:

let locationObj={
“coords”:{
“准确性”:5,
“高度”:0,
“高度准确性”:-1,
“标题”:-1,
“纬度”:37.785834,
“经度”:-122.406417,
“速度”:-1,
},
“时间戳”:157709490806.544,
}
常量res=({纬度,经度})=>({纬度,经度}))(locationObj.coords);

控制台日志(res)所以你不能从一个对象中提取两个属性?o。O@Andreas正如我所说,这是一个全新的想法,我希望得到一个建议。谢谢解决方案在“您的”脚本中。我的建议?研究。没有证书你不能游泳。你会淹死的。换句话说:在你开始胡乱处理那些对你来说太复杂而无法理解的代码之前,先学习基础知识。否则,您将不得不继续问越来越多的问题,因为您不知道自己在做什么。undefined不是一个对象(评估'this.state.location.coords')替换为this!谢谢,但是我现在怎么打印呢DEdited我建议你对官方文件做一个基本的介绍,although@ZohirSalakOP正在使用
=>
函数,所以我继续使用相同的方法。如果您有更好的解决方案,欢迎您发布。