亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

模板文字連接中的條件語句?

模板文字連接中的條件語句?

慕無忌1623718 2022-05-26 14:17:46
我正在進行這樣的 API 調用:posts: (ppp, page) =>     requests.get(`/wp-json/wp/v2/posts?per_page=${ppp}&page=${page}`)不過,我并不總是會在每頁或每頁中傳遞帖子,所以我只想連接這些變量(如果它們存在)。我在下面嘗試過,但似乎無法降低格式:requests.get(`/wp-json/wp/v2/posts?`${ppp ? `'per_page='${ppp} : `''` `${page} ? `'&page=' ${page}` :''`)
查看完整描述

1 回答

?
www說

TA貢獻1775條經驗 獲得超8個贊

除了您的第二個解決方案包含語法錯誤之外,它也不是最易讀的方法......


但是你為什么要重新發明輪子呢?


您可以使用在客戶端和Node.jsURL中都可用的 API :


posts: (ppp, page) => {

  const url = new URL('/wp-json/wp/v2/posts')

  if(ppp) url.searchParams.append('per_page', ppp)

  if(page) url.searchParams.append('page', page)

  return requests.get(url.href)

}  

但是,如果由于某種原因不能使用上述解決方案,您仍然可以實現與上述解決方案類似的算法。例如,您可以使用數組:


posts: (ppp, page) => {

  const urlParams = []

  if(ppp) urlParams.push(`per_page=${ppp}`)

  if(page) urlParams.push(`page=${page}`)

  return requests.get(`/wp-json/wp/v2/posts?${ urlParams.join('&') }`)

}  

或者更靈活的解決方案:


posts: (ppp, page) => {

  const urlParams = {

    per_page: ppp, //per_page=ppp

    page,          //page=page

                   //Add more here if you want

  }

  return requests.get(`/wp-json/wp/v2/posts?${ 

    Object

      .entries(urlParams)

      .filter(([k, v]) => v) //If value is truthy

      .map(e => e.join('=')) //Concatenate key and value with =

      .join('&') //Concatenate key-value pairs with &

  }`)

}  

但是,如果你想堅持你的版本,這里有一個固定的例子:


requests.get(`/wp-json/wp/v2/posts?${ppp ? `per_page=${ppp}` : ''}${(ppp && page) ? '&' : ''}${page ? `page=${page}` : ''}`)


查看完整回答
反對 回復 2022-05-26
  • 1 回答
  • 0 關注
  • 103 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號