を使用して置き換える私はRAMDAに探していますとtの質問があり、次のようRamda REPLから:検索と機能JavaScriptと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);
どのように私はそれが代わりに上記のパラグラフごとにグループ化され得るためにgroupBy
を使用します方法?
この結果から、すべての単語を時間順にソートし、一致する段落のみを返すことで、1つ以上のアイテムを持つことができる文字列の検索を行うにはどうすればよいですか?
search_criteria = 'Arthur stood';
results = [
{ para: 'p1-0',
words: [
{ 'name': 'Arthur', 'time': 89.820000},
{ 'name': 'stood', 'time': 90.180000}
}
]
どのようにこれらのアイテムをreplace = 'Arthuro stopped'
に置き換えますか?
何かアドバイスをいただければ幸いです。 RAMDAであなたの最初の問題を解決するために
ok、ありがとう、私は新しい質問を開きます – khinester