首页 > 解决方案 > 从另一个数组中过滤出一组项目

问题描述

在加载时,我收到了我想从用户视图中隐藏的图像 URL 列表。

我也有一个包含所有原始图像 URL 的数组。

我想创建一个没有隐藏图像 URL 的新数组。

我正在使用该array.filter()函数,但它没有从数组中删除 URL。

我认为这是我加载函数的方式,因为隐藏的图像最初是空的,然后它再次加载并且它在那里有它的值,但我不确定我没有做什么来让它正常工作。

感谢您的任何见解。

useEffect(() => {
  async function getImage(jobID) {
    const imageURL = await Storage.list(`${jobID}/completed/`);
    let imagesAsArray = [];
    for (let i = 0; i < imagesToDownload.length; i++) {
      const imagesDownloaded = await getURLFromS3(imagesToDownload[i]);
      imagesAsArray.push(imagesDownloaded)
    }
    return imagesAsArray
  }

  async function onLoad() {
    try {
      const downloadedImage = await getImage(job);
      if (hiddenImages !== null) {
        hide(downloadedImage)
      } else {
        setImages(downloadedImage);
      }
    } catch (e) {
      alert(e);
    }
  }
  onLoad();
}, [job]);

function hide(imagesToFilter) {
  const ImagesToView = (imagesToFilter).filter(image =>(!image.includes(hiddenImages)));
  console.log(ImagesToView)
  setImages(ImagesToView);
}

hiddenImages值示例:

在此处输入图像描述

console.log(ImagesToView)

在此处输入图像描述

标签: javascriptreactjs

解决方案


推荐阅读