ss search
v1.12.0
아직도 확신하지 못하시나요? 이 대화형 데모를 통해 그 강력함을 직접 경험해보세요.
다른 검색 라이브러리와 비교하면 어떤가요? 이 대화형 벤치마크를 통해 직접 테스트해 보세요. ;)
ss-search는 npm에서 사용할 수 있습니다. 다음을 사용하여 설치하세요.
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" }]
그것은 매우 간단합니다. 구성이 없으며 그냥 작동합니다.
거의 모든 데이터 유형(부울, 숫자, 문자열, 객체, 배열)이 지원됩니다.
// 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
객체를 참조하는 키를 제공하면 JSON.stringify를 사용하여 해당 객체를 문자열화합니다.
const results = search ( data , [ 'object' ] , 'property' )
// results: will return our original dataset as it matches the property key "nestedProperty" of our object
단일 값만 추출하기 위해 객체의 중첩 속성에 액세스하려는 경우
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
배열을 참조하는 키를 제공하면 JSON.stringify를 사용하여 해당 배열을 문자열화합니다.
const results = search ( data , [ 'array' ] , 'value2' )
// results: will return our original dataset
모든 속성을 검색하려는 객체의 배열이 있는 경우
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
특정 속성만 검색 가능하게 하려는 객체 배열이 있는 경우
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
기능 옵션다음 옵션을 사용하여 검색 환경을 맞춤설정하세요.
옵션 매개변수 | 값 | 설명 |
---|---|---|
withScore | true | true 로 설정하면 검색 함수는 일치하는 요소와 해당 점수를 각각 포함하는 개체 배열을 반환합니다. 점수는 요소가 검색 텍스트와 얼마나 밀접하게 일치하는지를 나타내며, 점수가 높을수록 더 가깝게 일치함을 나타냅니다. 검색 결과가 일치하지 않더라도 점수는 0으로 반환됩니다. |
withScore | false | false 로 설정되거나 제공되지 않으면 함수는 점수 없이 일치하는 요소의 배열을 반환합니다. |
withScore
옵션이 없으면:
const data = [ { name : 'John' } , { name : 'Jane' } , { name : 'Doe' } ]
const result = search ( data , [ 'name' ] , 'John' )
console . log ( result ) // [{ name: 'John' }]
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 }
// ]
모노레포 전체의 종속성을 더 잘 관리하기 위해 NX를 사용하고 있습니다.
종속성 설치: npm i
웹앱 시작: npm run web-app:serve
라이브러리 테스트: npm run test:all