2013-10-24 56 views
-1

我想執行JavaScript數組進行搜索,顯示在相關的查詢結果所有的東西等同於以下SQL語句:通過相關搜索的陣列,顯示結果查詢

"SELECT * FROM table WHERE column LIKE input" 

下面是一個例子:

var array = []; 
array[0] = "Apple"; 
array[1] = "Apricot"; 
array[2] = "Pear"; 
array[3] = "Peacock"; 

比方說我的查詢字符串爲「AP」,它將返回以下順序結果:

1. "Apple" 
2. "Apricot" 

query = "p" 
result: 

1. "Pear" 
2. "Peacock" 
3. "Apple" 
4. "Apricot" 

query = "r" 
result: 

1. "Apricot" 
2. "Pear" 

這是可能的JavaScript?怎麼樣?

+1

我想你必須寫下你自己的功能來做到這一點。你有沒有嘗試過任何東西? – Dharman

+1

taffydb讓您使用查詢對象而不是函數來過濾數據。 – dandavis

+0

@dandavis太妃糖看起來不錯,感謝提及它! – PeterInvincible

回答

1

試試這個,

var arr = []; 
    arr[0] = "Apple"; 
    arr[1] = "Apricot"; 
    arr[2] = "Pear"; 
    arr[3] = "Peacock"; 

    var resultArr=[]; 
    var str='ap'//string to search 

    for(var i=0;i<arr.length;i++){ 
     if(arr[i].indexOf(str) != -1){ 
     resultArr.push(arr[i]); 
     } 
    } 

    alert('search results:'+resultArr); 
    //resultArr contains reults 
+0

很好,謝謝!任何想法如何顯示最多10個結果? – PeterInvincible

+0

如果您只想要最多10個搜索結果,則使用script for(var i = 0; i = 10){ 斷裂; //從環 走出} } } – anand4tech

1
var array = []; 
array[0] = "Apple"; 
array[1] = "Apricot"; 
array[2] = "Pear"; 
array[3] = "Peacock"; 

function searchArray(query){ 
    resultArray = []; 
    for(var i=0;i<query.length-1;i++){ 
     var char = query.charAt(i); 
     if(array[i].indexOf(char)!=null){ 
      resultArray.push(array[i]); 
     } 
    } 
    return resultArray; 
} 

這是未經測試,就在我的頭頂。但你應該在結果中尋找結果ArrayArray