前言
加班,本来不想写博文了,想了下还是做个记录吧,万一以后再用到呢?
背景为了做一个高亮模型的需求,根据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 }