TypeScript: возвращает только первое значение набора объектов

#palantir-foundry #foundry-code-repositories

Вопрос:

Я довольно новичок в машинописи и особенно в пользовательской реализации Palantir для объектов(наборов). Что я пытаюсь заархивировать: я хотел бы отфильтровать набор объектов до некоторых определенных значений. Затем я хотел бы вернуть первое из этих значений. На самом деле я просто хотел бы вернуть одну строчку. Что я сделал до сих пор:

     @Function()
    public nextUnprocessedValueString(inputObject: ObjectSet<CombinedSentencesForTagging>): ObjectSet<CombinedSentencesForTagging>{
        const result = Objects.search().combinedSentencesForTagging().filter(f => f.customerFeedback.exactMatch('i like it very much.'))
        return result
 

Результат выглядит так:
Результат

Мне понадобится только первая строка (или случайная строка).

Спасибо!

Комментарии:

1. Я не могу легко найти документацию по PF, но: я предполагаю result , что в этой функции есть массив отфильтрованных значений (например, 3 на скриншоте), правильно? Просто возьмите первый индекс этого массива.

Ответ №1:

Дайте этому попробовать:

 @Function()
public nextUnprocessedValueString(inputObject: ObjectSet<CombinedSentencesForTagging>): CombinedSentencesForTagging {
    const result = 
           inputObject.filter(f => f.customerFeedback.exactMatch('i like it very much.'))
                      .orderBy(f => f.customerFeedback.asc())
                      .take(1);
    
    return result[0];
}
 

Вот изменения, которые я внес в исходную функцию:

  1. Изменил тип возвращаемого значения на один CombinedSentencesForTagging объект.
  2. Изменил filter строку для запуска в inputObject соответствии с указанными в параметрах функции
  3. Использовал orderBy take предложения и фильтр, чтобы выбрать только один из отфильтрованных результатов.