Ich suche in Ramda und t Fragen haben, aus der folgenden Ramda REPL:Suchen und Ersetzen mit Hilfe der funktionellen Javascript und Ramda
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);
Wie verwende ich groupBy
, um es mit den Ziffern anstelle der oben gruppiert zu erhalten Methode?
Von diesem Ergebnis, wie mache ich einen Fund einer Zeichenfolge, die ein oder mehrere Elemente haben kann, indem alle Wörter in der Reihenfolge der Zeit sortiert und nur die übereinstimmenden Absätze zurückgegeben werden?
search_criteria = 'Arthur stood';
results = [
{ para: 'p1-0',
words: [
{ 'name': 'Arthur', 'time': 89.820000},
{ 'name': 'stood', 'time': 90.180000}
}
]
Wie würden Sie diese Artikel durch replace = 'Arthuro stopped'
ersetzen?
Jede Beratung wird sehr geschätzt.
ok, danke, ich werde eine neue Frage öffnen – khinester