前言
加班,本來不想寫博文了,想了下還是做個記錄吧,萬一以後再用到呢?
背景爲了做一個高亮模型的需求,根據fwbh查詢到所有對應的圖斑模型,然後高亮。由於在前端要用到sql語句,所以要把數字拼接起來,並且帶引號。類似這種語句:
const query = layer.createQuery() query.where = `fwbh in ('123','321')` //此處爲es6的模板字符串
環境
Win10
JavaScript
ArcGIS API for JavaScript 4.24
問題
後端接口請求的數組(元素爲字符串類型的數字),貌似在前端會自動轉爲數字類型。,比如['123','321'],用array.join(',')處理後會轉爲: '123,321' 。實際想要的是'123','321'
1 let array=['123','321']
2 array.join(',') //結果爲 '123,321'
這種是不滿足需求的,需要改造一下。
解決方案
直接上代碼,純前端只需參考下面兩句核心代碼即可,其它爲WebGIS代碼:
1 // 此處爲所有結果高亮邏輯 2 const arr = [ 3 '320509000458377', 4 '320509000458378', 5 '320509000458376' 6 ] 7 const fwbhStr = arr.join("','") //核心代碼 8 // console.log(fwbhStr) 9 10 const query = layer.createQuery() 11 query.where = `fwbh in ('${fwbhStr}')` //核心代碼,用了ES6模板字符串 12 layer 13 .queryFeatures(query) 14 .then((result) => { 15 if (highlight) { 16 highlight.remove() 17 } 18 highlight = sceneLayerView.highlight(result.features) 19 }) 20 .catch(function (error) { 21 console.log(error) 22 }) 23 }