#javascript #arrays #filter
Вопрос:
У меня есть массив, который выглядит так
const arr = [
{img2: "assets1.png - Copy.png"},
{img2: "lime.jpg"},
{img2: "ginalee.jpg"}
{img2: "cb.jfif"}
{code: "blob:http://localhost:3000/d2c4641a-8586-4bb8-9a14-21b6712856ff", key: "img2", value: "cb.jfif"}
{code: "blob:http://localhost:3000/b406ceb8-92f4-4bbd-9eef-7db7d103b1e3", key: "img2", value: "lime.jpg"}
{code: "blob:http://localhost:3000/28130041-347f-49d9-b30d-72e26c9a6dda", key: "img2", value: "ginalee.jpg"}
{code: "blob:http://localhost:3000/d0d3e9aa-8791-419d-8585-f6c878b161e6", key: "logo", value: ""}
{code: "blob:http://localhost:3000/187977de-6a8f-4815-b3e2-01bfa818bcb7", key: "logo", value: "OIPYYPYPEVF.jpg"}
{code: "blob:http://localhost:3000/dee69b85-6d13-4f81-ba5b-d8db5708d9c8", key: "logo", value: ""}
{code: "blob:http://localhost:3000/676b0366-f30e-4653-9716-ab0ebf4155a2", key: "logo", value: "image (
5).png"}
]
Мне нужно избавиться от тех, которые говорят img2 (или на самом деле /img[0-9]/) и почти все варианты
arr.filter((f)=>Object.keys(f).includes(...))
не работает.
любая помощь была бы очень кстати.
Ответ №1:
Проверьте, содержат ли .some
ключи img
:
arr.filter(obj => Object.keys(obj).some(key => !key.includes('img')))
Комментарии:
1. Я делаю это каждый раз сам, но результат, который я хочу, отображается с помощью !key.includes(‘img’)
Ответ №2:
for(let i = 0; i < arr.length; i ) {
for(let r in arr[i]) {
if(arr[i][r].match(/(img)[0-9]/ig)) {
arr[i][r] = arr[i][r].replace(/(img)[0-9]/ig, "");
}
}
}
console.log(arr);
Ответ №3:
Что-то подобное может сработать, чтобы игнорировать все img[0-9]:
arr.filter((val) => Object.keys(val).every((key) => !key.match(/^img[0-9] $/i)));
Это позволит получить все ключи для каждого отдельного объекта и оценить every
, соответствует ли имя ключа регулярному выражению, чтобы получить отрицательное значение (это означает, что любое значение, соответствующее регулярному выражению, вернет false
вызывающее .каждый, чтобы остановить итерацию и вернуться false
к .filter
функции и, таким образом, удалить эти значения.