【问题标题】:How to access the img value? javascript如何访问 img 值? javascript
【发布时间】:2020-09-24 09:42:54
【问题描述】:

我有一个具有多个属性的对象数组,其中一个称为“文件”,其中有两种类型,如下所示

const products = [
  {
    functional_id: "2_recharges",
    quantity: 1,
    title: "Coffret empreinte rouge",
    file: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAA…em3dIEUUE1O4fn/M8l6v+f6VPgptdk2plAAAAAElFTkSuQmCC"
  },
  {
    functional_id: "sacs_blancs",
    quantity: 1,
    title: "Sacs blancs",
    file: "data:image/;base64,"
  }
]

这是我第一次使用图像文件,我不知道如何区分以创建一个条件,以便只显示那些在其值中包含单词“png”的文件,在第一个示例的情况下,因为像第二个一样的不显示任何图像

我尝试将它们视为字符串以检查它们是否包含值字符串,但它不起作用,因为我知道它们不是字符串。

如果有人可以告诉我如何创造条件。提前非常感谢您

【问题讨论】:

    标签: javascript image if-statement png angular7


    【解决方案1】:

    你会想要使用js的filter方法来检查文件是否包含'png'

    const products = [{
        functional_id: "2_recharges",
        quantity: 1,
        title: "Coffret empreinte rouge",
        file: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAA…em3dIEUUE1O4fn/M8l6v+f6VPgptdk2plAAAAAElFTkSuQmCC"
      },
      {
        functional_id: "sacs_blancs",
        quantity: 1,
        title: "Sacs blancs",
        file: "data:image/;base64,"
      }
    ]
    
    const pngImages = products.filter(product => product.file.includes('png'))
    console.log(pngImages)

    【讨论】:

    • @javascript110899 请注意,您可能应该搜索更精确的内容,例如 image/png;,因为在 base64 编码字符串中按此顺序包含 png 字符的概率不为空
    • 明白。非常感谢您的宝贵时间。
    【解决方案2】:

    这个简单的过滤器只返回那些在文件字符串中有 png 的产品

    products.filter(product => product.file.match('png').length);
    

    【讨论】:

    • 这段代码如果不匹配会导致错误-Cannot read property 'length' of null
    • 你可以把?符号像products.filter(product => product.file.match('png')?.length);或者去掉.lenght
    猜你喜欢
    • 2012-03-13
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    • 2023-01-22
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    相关资源
    最近更新 更多