在 js 中将字符串数据从 JSON API 转换为 int 的任何方法或解决方案?

Any way or solution to convert the string data from JSON API to int in js?

考虑以下代码:

  componentDidMount(){
    const id = localStorage.getItem('id');



     fetch(`http://localhost:9000/api/calendar/list/${id}`,)
     .then((resp)=>{
       resp.json().then((res)=>{
          this.setState({
            data: res.data.map(item => {
              return {
                title: item.title,
                startDate: new Date(item.startDate),
                endDate: new Date(item.endDate),
                eventId: item.eventType  // from api it provide on string but I need to convert it in to an integer
              };

            })
          });
       })
     })

   }

API 的结果在这里:

因此在前端 js 上,我需要将 eventId 设置为一个数字,例如 Conference in num 1Launching in num 2 , 第 3 个贸易展览。我有什么办法可以做到吗?

您可以创建一个对象来将字符串映射到这样的数字,其中 item1item2 是您的 API 数据的示例:

const item1 = {
  userId: 1,
  startDate: 123456,
  endDate: 123456,
  eventType: 'Conference'
};
const item2 = {
  userId: 2,
  startDate: 123456,
  endDate: 123456,
  eventType: 'Launching'
};

const map = { Conference: 1, Launching: 2, Trade: 3 };

console.log(map[item1.eventType]); // eventId will be 1 for Conference
console.log(map[item2.eventType]); // eventId will be 2 for Launching

在您的代码中,这将是

const map = { Conference: 1, Launching: 2, Trade: 3 };
fetch(`http://localhost:9000/api/calendar/list/${id}`,)
     .then((resp)=>{
       resp.json().then((res)=>{
          this.setState({
            data: res.data.map(item => {
              return {
                title: item.title,
                startDate: new Date(item.startDate),
                endDate: new Date(item.endDate),
                eventId: map[item.eventType]
              };
            })
          });
       })
     })

如果您知道所有值,则可以利用 Switch Case

getEventId = eventType => {
  switch (eventType){
    case 'Conference'
      return 1;

      ...... // rest of the cases

     }
   }
}

然后使用这个函数将eventType映射到eventId

eventId: getEventId(item.eventType)