簡體   English   中英

如何將逗號分隔的查詢字符串轉換為字符串數組

[英]How can i convert comma separated query String to a Array of Strings

我想知道是否有一個

我有一個查詢參數,當用戶調用 URL 時會得到一個查詢參數,它可以有一個或多個用逗號分隔的值。 當我得到參數時,我需要將逗號分隔的項目列表轉換為字符串數組,這樣我就可以將它們傳遞給我的 SQL 查詢。 下面的代碼為 inPropTypearray 打印出 [ 'sfr', 'condo', 'vac' ] 但是當我將數組添加到 myQstr 時,它不再是字符串數組,而是像這樣分隔的列表逗號。 ['LOWER(f.Record.propertyType) IN sfr,condo,vac']

不知道我錯過了什么

 propertytype = 'sfr,condo,vac' myQstr =[] if(propertytype){ console.log('we have Property Filter') if(propertytype.length > 0){ let inPropType = propertytype.split(",") let inPropTyperray = [] inPropType.forEach(function(element){ inPropTyperray.push(element) }) myQstr.push("LOWER(f.Record.propertyType) IN " + inPropTyperray ) console.log(inPropTyperray) console.log(myQstr) } }

propertytype = 'sfr,condo,vac'
myQstr =[]

  if(propertytype){
      console.log('we have Property Filter')
      if(propertytype.length > 0){
        let inPropType = propertytype.split(",")
        let inPropTyperray = []
        inPropType.forEach(function(element){
        inPropTyperray.push(element)
        }) 
        myQstr.push("LOWER(f.Record.propertyType) IN " + inPropTyperray )
        console.log(inPropTyperray)
        console.log(myQstr)
      }
   }

您應該將 map 數組值添加到 SQL 字符串並將這些括號添加到查詢字符串:

 propertytype = 'sfr,condo,vac' myQstr =[] if(propertytype){ console.log('we have Property Filter') if(propertytype.length > 0){ let inPropType = propertytype.split(",") let inPropTyperray = [] inPropType.forEach(function(element){ inPropTyperray.push(element) }) myQstr.push(`LOWER(f.Record.propertyType) IN (${inPropTyperray.map(i => `'${i}'`)})`) console.log(inPropTyperray) console.log(myQstr) } }

SQL 需要在IN列表中的每個字符串周圍加上引號,並且還要求它位於()內部。

 propertytype = 'sfr,condo,vac' myQstr = [] if (propertytype) { console.log('we have Property Filter') if (propertytype.length > 0) { let inPropType = propertytype.split(",") let inPropTyperray = inPropType.map(prop => `'${prop}'`).join(',') myQstr.push(`LOWER(f.Record.propertyType) IN (${inPropTyperray})`); console.log(inPropTyperray) console.log(myQstr) } }

這很簡單。 您只需要使用 delimiter/separator 分割字符串,並且您應該得到一個字符串數組。

const propertyType = 'sfr,condo,vac';
const myQstr = propertyType.split(",");

console.log(myQstr); // [ 'sfr', 'condo', 'vac' ]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM