Saya memiliki array yang ingin saya periksa, misalnya:

 var str = ["a","b","c","d","e","f"];

Tapi saya ingin memeriksa apakah nilai string array ini ada dalam database atau semacamnya. Saya ingin mencari tahu mana yang cocok dan menyimpan kecocokan yang ditemukan di dalam larik.

 var dataFound = [];
 var count = 0;
 for(var stringData in someDatabase){
    if(stringData == str[0] || stringData == str[1] ...etc){
         dataFound[count] = stringData;
         count++;
    }
 }

 //someDatabase will consist of strings like random alphabets 
 from a-z

Saya tidak ingin membuat hardcode pernyataan if karena array kueri bisa di mana saja dari a, b, c .. (n) karena n dapat mewakili jumlah string apa pun. Saya mencoba menggunakan for-loop dari 0 hingga str.length tetapi itu bisa memakan waktu cukup lama ketika saya dapat menggunakan operator atau untuk mencari sekaligus dengan semua string nilai, apakah ada jalan keluarnya?

-2
Zulu 28 Agustus 2017, 02:14

2 jawaban

Jawaban Terbaik
if (str.indexOf(stringData) > -1) {
    //found
}

Array.prototype.indexOf() (MDN)

2
trashr0x 27 Agustus 2017, 23:32

Jika str adalah array, dapatkah Anda melakukan ini?

var dataFound = [];
var count = 0;
for(var stringData in someDatabase){
 for (i++; i < str.length; i++) {
  if(stringData == str[i]){
     dataFound[count] = stringData;
     count++;
  }
 }

}

0
David Watson 27 Agustus 2017, 23:42