#javascript #node.js #webtorrent #inquirerjs
Вопрос:
Я использую этот код в скрипте nodejs, чтобы поместить некоторые элементы в массив для list
типа вопроса inquirerjs.
for (let [index, torrent] of results.entries()) {
if (torrent.seeds > 0 amp;amp; torrent.peers > 0) {
filesList.push(`${torrent.title} s:${torrent.seeds} p:${torrent.peers}`);
filesDetails.push(torrent);
} else {
results.splice(index, 1);
}
}
Как вы можете видеть, я добавляю s:value
и p:value
после имени файла, чтобы информировать пользователя о семенах и одноранговых файлах файла. Когда пользователь выбирает файл из списка, я ищу в массиве объектов, чтобы найти файл и вернуть его обратно. Если я не добавлю s:value
и p:value
в имя файла, все будет работать так, как ожидалось, но поскольку мне нужно предоставить эту информацию, как я могу удалить их из имени файла перед циклическим циклом массива?
Это код, который я использую в данный момент, чтобы найти нужный файл в массиве объектов
const selectedTorrent = [];
for (let f of filesDetails) {
if (f.title === availableTorrents.selected) {
selectedTorrent.push(f);
}
}
Комментарии:
1. почему
filesList.push({title: torrent.title, s: torrent.seeds, p: torrent.peers}
бы и нет ? похоже на анти-шаблон для использования строки, если вам понадобятся отдельные значения позже где-то в другом месте2. @LawrenceCherone, потому что я использую
fileList
для выбора вопросов inquirerjs. Я не знаю, возможно ли это
Ответ №1:
Не очень понятно, как «Список файлов» используется во втором фрагменте, но, чтобы ответить на вопрос в заголовке, вы можете удалить часть, начинающуюся с «s:», используя комбинацию встроенных функций строки indexOf
и substring
:
let title = `Torrent title s:${torrent.seeds} p:${torrent.peers}`;
let strippedTitle = title.substring(0, title.indexOf(" s:")); // returns "Torrent title"
Индекс: Документы MDN
подстрока: Документы MDN
Комментарии:
1.
filesList
предоставляется для запроса, чтобы предоставить пользователю выбор. Когда пользователь выбирает возможный вариант, он добавляется кavailableTorrents.selected
тому, который используется во втором фрагменте для сравнения имен файлов! Ваше решение удалит такжеp:
?2. Ладно, я так и думал. Да, это решение также удалит «p:». Он принимает подстроку от символа с индексом 0 (начало) до индекса строки » s:». Я обновлю ответ некоторыми документами о методах
3. Рад, что вы нашли это полезным! 🙂