Masih belum yakin? Rasakan langsung kekuatannya dengan demo interaktif ini.
Bagaimana cara membandingkannya dengan perpustakaan pencarian lainnya? Uji sendiri dengan tolok ukur interaktif ini ;)
ss-pencarian tersedia di npm. Instal dengan:
npm install ss-search
import { search } from 'ss-search'
const data = [
{
number : 1 ,
text : 'A search function should be fast' ,
} ,
{
number : 2 ,
text : 'A search function should provide accurate results' ,
} ,
]
const searchKeys = [ 'text' ]
const searchText = 'fast search'
const results = search ( data , searchKeys , searchText )
// results: [{ number: 1, text: "A search function should be fast" }]
Semudah itu. Tidak ada konfigurasi, ini hanya berfungsi.
Hampir semua tipe data didukung [boolean, angka, string, objek, array].
// This dataset will be used as a common starting point for our type examples
const data = [
{
boolean : true ,
number : 1 ,
string : 'search' ,
object : { nestedProperty : 'nested value' } ,
array : [ 'value1' , 'value2' ] ,
arrayObjects : [ { arrayObjectProperty : 'array object value' } ] ,
} ,
]
const results = search ( data , [ 'boolean' ] , 'true' )
// results: will return our original dataset
const results = search ( data , [ 'number' ] , '1' )
// results: will return our original dataset
const results = search ( data , [ 'string' ] , 'search' )
// results: will return our original dataset
Memberikan kunci yang merujuk ke suatu objek akan merangkai objek tersebut menggunakan JSON.stringify
const results = search ( data , [ 'object' ] , 'property' )
// results: will return our original dataset as it matches the property key "nestedProperty" of our object
Jika Anda ingin mengakses properti bersarang dari suatu objek untuk mengekstrak hanya satu nilai
const results = search ( data , [ 'object.nestedProperty' ] , 'property' )
// results: will return an empty array as we extracted the value of our nested object
// if we had searched for "nested value" we would of had the original dataset
Memberikan kunci yang merujuk ke array akan merangkai array tersebut menggunakan JSON.stringify
const results = search ( data , [ 'array' ] , 'value2' )
// results: will return our original dataset
Jika Anda memiliki array objek yang ingin Anda cari semua propertinya
const results = search ( data , [ 'arrayObjects' ] , 'arrayObjectProperty' )
// results: will return an our original dataset as it's treated just like a regular array
// thus the arrayObjectProperty is part of the searchable text
Jika Anda memiliki array objek yang Anda inginkan hanya properti tertentu yang dapat dicari
const results = search ( data , [ 'arrayObjects[arrayObjectProperty]' ] , 'arrayObjectProperty' )
// results: will return an empty array as we extracted the value of our nested array of objects
// if we had searched for "value object" we would of had the original dataset
search
Sesuaikan pengalaman pencarian Anda menggunakan opsi berikut:
Parameter opsi | Nilai | Keterangan |
---|---|---|
withScore | true | Jika disetel ke true , fungsi pencarian akan mengembalikan array objek, masing-masing berisi elemen yang cocok dan skornya yang sesuai. Skor menunjukkan seberapa mirip elemen tersebut cocok dengan teks penelusuran, dan skor yang lebih tinggi menunjukkan kecocokan yang lebih dekat. Sekalipun pencariannya tidak cocok, skornya akan 0. |
withScore | false | Jika disetel ke false atau tidak disediakan, fungsi akan mengembalikan array elemen yang cocok tanpa skornya. |
Tanpa opsi withScore
:
const data = [ { name : 'John' } , { name : 'Jane' } , { name : 'Doe' } ]
const result = search ( data , [ 'name' ] , 'John' )
console . log ( result ) // [{ name: 'John' }]
Dengan opsi withScore
:
const data = [ { name : 'John' } , { name : 'Jane' } , { name : 'Doe' } ]
const result = search ( data , [ 'name' ] , 'John' , { withScore : true } )
console . log ( result )
// [
// { element: { name: 'John' }, score: 1 },
// { element: { name: 'Jane' }, score: 0 },
// { element: { name: 'Doe' }, score: 0 }
// ]
Untuk mengelola dependensi di seluruh monorepo dengan lebih baik, saya menggunakan NX.
Instal dependensi: npm i
Mulai aplikasi web: npm run web-app:serve
Uji perpustakaan: npm run test:all