Поиск значения из объектов JS\TS
От бека получаю ответ
[
{
fileId: 71240,
signStatus: 4,
fileName: 'Заявление_УСД В КЕМЕРОВСКОЙ ОБЛАСТИ - КУЗБАССЕ_0000033-РВ.docx',
uploadedDate: '2025-02-11T09:01:08.79668',
uploadedBy: 'Автоматически',
tag: 'acceptance'
},
{
fileId: 71241,
signStatus: 4,
fileName: 'Предложение_УСД В КЕМЕРОВСКОЙ ОБЛАСТИ - КУЗБАССЕ_0000033-РВ.docx',
uploadedDate: '2025-02-11T09:01:08.133628',
uploadedBy: 'Автоматически',
tag: 'acceptance'
}
]
Мне нужно для fileId
где fileName
содержит 'Предложение.
Простецким способом по второму объекту находит, верно(fileId: 71241)
.
const response = await contractsRegistry.json();
console.log(response[1].fileId);
Но мне нужно переписать чтоб поиск был по fileName
содержит 'Предложение. Подскажите как написать?
Ответы (2 шт):
Автор решения: SwaD
→ Ссылка
const response = [{
fileId: 71240,
signStatus: 4,
fileName: 'Заявление_УСД В КЕМЕРОВСКОЙ ОБЛАСТИ - КУЗБАССЕ_0000033-РВ.docx',
uploadedDate: '2025-02-11T09:01:08.79668',
uploadedBy: 'Автоматически',
tag: 'acceptance'
}, {
fileId: 71241,
signStatus: 4,
fileName: 'Предложение_УСД В КЕМЕРОВСКОЙ ОБЛАСТИ - КУЗБАССЕ_0000033-РВ.docx',
uploadedDate: '2025-02-11T09:01:08.133628',
uploadedBy: 'Автоматически',
tag: 'acceptance'
}];
// Ищем вхождение подстроки через indexOf
response
.filter(n => n.fileName.indexOf('Предложение') !== -1)
.forEach(el => console.log(el.fileId));
// Или с помощью метода includes // По совету @ksa
response
.filter(n => n.fileName.includes('Предложение'))
.forEach(el => console.log(el.fileId));
Фильтруем массив и ищем все элементы, где ключ fileName содержит "Предложение", далее выводим значения fileId найденных элементов
Автор решения: Эрмек Черикчиев
→ Ссылка
function findByFileName(search) {
const result = arr.reduce((acc, el) => {
if (el.fileName.includes(search)) {
acc.push(el);
}
return acc
}, [])
return result;
}