기능적인 자바 스크립트 및 람다를 사용하여 찾기 및 바꾸기

키 네스터

다음 Ramda REPL 에서 ramda를 살펴보고 t 질문이 있습니다 .

const R = require('ramda')
//const original = require('./test/fixtures/original.json')
const original = {
  speakers: {
    name: 'Author',
    words: [
      { duration: '0.360000', name: 'Arthur', time: '0.660000',   paragraph: 'p0-0' },
      { duration: '0.150000', name: 'the',    time: '1.020000',   paragraph: 'p0-0' },
      { duration: '0.380000', name: 'rat',    time: '1.170000',   paragraph: 'p0-0' },
      { duration: '0.770000', name: '.',      time: '1.550000',   paragraph: 'p0-0' },
      { duration: '0.360000', name: 'Arthur', time: '89.820000',  paragraph: 'p1-0' },
      { duration: '0.390000', name: 'stood',  time: '90.180000',  paragraph: 'p1-0' },
      { duration: '0.090000', name: 'and',    time: '90.570000',  paragraph: 'p1-0' }
    ]
  }
}

const words = R.lensPath(['speakers', 'words'])
const wordsList = R.view(words, original)
const result = [...wordsList.reduce((hash, { duration, time, name, paragraph }) => {
  const current = hash.get(paragraph) || { paragraph, words: [] };

  current.words.push({ duration, time, name });

  return hash.set(paragraph, current);
}, new Map).values()];

console.log(result);

groupBy위의 방법 대신 단락별로 그룹화하려면 어떻게 사용 합니까?

이 결과에서 모든 단어를 시간 순서대로 정렬하고 일치하는 단락 만 반환하여 하나 이상의 항목을 포함 할 수있는 문자열을 찾으려면 어떻게해야합니까?

search_criteria = 'Arthur stood';

results = [ 
  { para: 'p1-0', 
    words: [
      { 'name': 'Arthur', 'time': 89.820000},
      { 'name': 'stood', 'time': 90.180000}
  }
]

이러한 항목을 replace = 'Arthuro stopped'어떻게 대체 하시겠습니까?

어떤 조언이라도 대단히 감사합니다.

스콧 소예 트

Ramda의 첫 번째 문제를 해결하는 한 가지 방법은 다음과 같습니다.

pipe(
  view(lensPath(['speakers', 'words'])),  // original.speakers.words (null-safe)
  groupBy(prop('paragraph')),             // object with keys of para name, values of list of matching records
  map(map(dissoc('paragraph'))),          // removing unneeded para from records
  toPairs,                                // {p1: [...words1], p2: [...words2]} => [[p1, [...words1]], [p2, [...words2]]] 
  map(zipObj(['paragraph', 'words']))     // expected output structure
)(original)

에 대해 구체적으로 질문하셨습니다 groupBy. groupBy(prop('paragraph'))뒤의 데이터는 다음과 같습니다.

{
  "p0-0": [
    {duration: "0.360000", name: "Arthur", paragraph: "p0-0", time: "0.660000"},
    {duration: "0.150000", name: "the", paragraph: "p0-0", time: "1.020000"},
    {duration: "0.380000", name: "rat", paragraph: "p0-0", time: "1.170000"},
    {duration: "0.770000", name: ".", paragraph: "p0-0", time: "1.550000"}
  ],
  "p1-0": [
    {duration: "0.360000", name: "Arthur", paragraph: "p1-0", time: "89.820000"},
    {duration: "0.390000", name: "stood", paragraph: "p1-0", time: "90.180000"},
    {duration: "0.090000", name: "and", paragraph: "p1-0", time: "90.570000"}
  ]
}

나머지는 찾고있는 출력 구조를 얻기 위해 애쓰는 것입니다.

Ramda REPL 에서 결과를 볼 수 있습니다 . (파이프에서 이후 줄을 주석 처리하면 중간 결과를 볼 수 있습니다.)

질문의 후반부에서는 지금까지 시도한 내용을 보여주는 새로운 주제를 여는 것이 좋습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Google 시트 + 앱 스크립트 : showDialog 상자를 사용하여 값 찾기 및 바꾸기

분류에서Dev

자바 스크립트로 문자열 찾기 및 바꾸기

분류에서Dev

찾기 및 바꾸기-자바 스크립트 / jquery

분류에서Dev

Excel 다중 찾기 및 바꾸기 스크립트 향상

분류에서Dev

SQL 쿼리를 사용하여 다중 찾기 및 바꾸기

분류에서Dev

awk를 사용하여 다른 열 찾기 및 바꾸기

분류에서Dev

PHP를 사용하여 케이스를 유지하여 찾기 및 바꾸기

분류에서Dev

배치 또는 펄 스크립트를 사용하여 문자열 검색 및 바꾸기

분류에서Dev

바꾸기 문자열에서 찾은 문자열의 일부를 사용하여 찾기 및 바꾸기

분류에서Dev

찾기 및 바꾸기 스크립팅 (체크 박스 용)

분류에서Dev

사용자 입력없이 RegEx를 사용하여 찾기 및 바꾸기

분류에서Dev

자바 스크립트를 사용하여 기사 및 섹션 추가

분류에서Dev

Regex를 사용하여 DART 조건부 찾기 및 바꾸기

분류에서Dev

'sed'를 사용하여 찾기 및 바꾸기

분류에서Dev

REPLACE를 사용하여 php / mysql 찾기 및 바꾸기

분류에서Dev

VBA를 사용하여 열 찾기 및 바꾸기

분류에서Dev

sed를 사용하여 여러 줄의 문자열 찾기 및 바꾸기

분류에서Dev

자바 스크립트를 사용하여 전화 번호 찾기 및 링크 제공

분류에서Dev

Perl 스크립트에서 텍스트 찾기 및 바꾸기

분류에서Dev

Excel VBA 루프를 사용하여 문자열에서 텍스트 찾기 및 바꾸기

분류에서Dev

sed를 사용하여 복잡한 문자열 찾기 및 바꾸기

분류에서Dev

다차원 자바 스크립트 객체에서 재귀 찾기 및 바꾸기

분류에서Dev

bash 스크립팅 : 여러 단어로 된 문자열 찾기 및 바꾸기

분류에서Dev

쉘 스크립트 찾기 및 행 이름 바꾸기

분류에서Dev

정규식 자바 스크립트 및 바꾸기

분류에서Dev

nano에서 검색 및 바꾸기를 사용하여 "탭"찾기 및 바꾸기

분류에서Dev

자바 스크립트를 사용하여 부트 스트랩 도구 설명 표시 및 숨기기

분류에서Dev

Bash 스크립트 : 문자열에서 대문자 찾기 및 바꾸기

분류에서Dev

자바 스크립트 표 및 기능

Related 관련 기사

  1. 1

    Google 시트 + 앱 스크립트 : showDialog 상자를 사용하여 값 찾기 및 바꾸기

  2. 2

    자바 스크립트로 문자열 찾기 및 바꾸기

  3. 3

    찾기 및 바꾸기-자바 스크립트 / jquery

  4. 4

    Excel 다중 찾기 및 바꾸기 스크립트 향상

  5. 5

    SQL 쿼리를 사용하여 다중 찾기 및 바꾸기

  6. 6

    awk를 사용하여 다른 열 찾기 및 바꾸기

  7. 7

    PHP를 사용하여 케이스를 유지하여 찾기 및 바꾸기

  8. 8

    배치 또는 펄 스크립트를 사용하여 문자열 검색 및 바꾸기

  9. 9

    바꾸기 문자열에서 찾은 문자열의 일부를 사용하여 찾기 및 바꾸기

  10. 10

    찾기 및 바꾸기 스크립팅 (체크 박스 용)

  11. 11

    사용자 입력없이 RegEx를 사용하여 찾기 및 바꾸기

  12. 12

    자바 스크립트를 사용하여 기사 및 섹션 추가

  13. 13

    Regex를 사용하여 DART 조건부 찾기 및 바꾸기

  14. 14

    'sed'를 사용하여 찾기 및 바꾸기

  15. 15

    REPLACE를 사용하여 php / mysql 찾기 및 바꾸기

  16. 16

    VBA를 사용하여 열 찾기 및 바꾸기

  17. 17

    sed를 사용하여 여러 줄의 문자열 찾기 및 바꾸기

  18. 18

    자바 스크립트를 사용하여 전화 번호 찾기 및 링크 제공

  19. 19

    Perl 스크립트에서 텍스트 찾기 및 바꾸기

  20. 20

    Excel VBA 루프를 사용하여 문자열에서 텍스트 찾기 및 바꾸기

  21. 21

    sed를 사용하여 복잡한 문자열 찾기 및 바꾸기

  22. 22

    다차원 자바 스크립트 객체에서 재귀 찾기 및 바꾸기

  23. 23

    bash 스크립팅 : 여러 단어로 된 문자열 찾기 및 바꾸기

  24. 24

    쉘 스크립트 찾기 및 행 이름 바꾸기

  25. 25

    정규식 자바 스크립트 및 바꾸기

  26. 26

    nano에서 검색 및 바꾸기를 사용하여 "탭"찾기 및 바꾸기

  27. 27

    자바 스크립트를 사용하여 부트 스트랩 도구 설명 표시 및 숨기기

  28. 28

    Bash 스크립트 : 문자열에서 대문자 찾기 및 바꾸기

  29. 29

    자바 스크립트 표 및 기능

뜨겁다태그

보관