簡體   English   中英

按 Object 鍵正則表達式過濾數組

[英]Filter array by Object key regex

我有一個看起來像的數組

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(...))不起作用。

任何幫助都會很棒。

檢查.some鍵是否包含img

arr.filter(obj => Object.keys(obj).some(key => !key.includes('img')))
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);

像這樣的東西可以忽略所有img [0-9]:

arr.filter((val) => Object.keys(val).every((key) => !key.match(/^img[0-9]+$/i)));

這將獲取每個單獨的 object 的所有鍵,如果鍵名稱與正則表達式匹配以獲得否定值,則使用every進行評估(意味着與正則表達式匹配的任何值都將返回false導致.every 停止迭代並返回false.filter function並因此刪除這些值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM