如何用 JavaScript 中的空字符串替换 'undefined'

How to replace 'undefined' with an empty string in JavaScript

我正在从 API 中提取产品数据。超过一半的产品没有产品年份。相反,它 returns 为 undefined.

我不想显示单词 undefined,而是想用一个空字符串替换它。

下面是我的代码:

product.photos.map(() => {
    let year = "";
    if (product.year === undefined) {
        year = product.year;
    }
    // Then output the data
    output += `
            <div class="card">
              <img class="img-fluid" src=${product.photos[0].text} alt=${product.model} />
              <h3>${product.year} ${product.manufacturer} ${product.model}</h3>
              <p>${product.hours} hours</p>
              <a href='https://used.battlefieldequipment.ca/en/${product["group-code"]}/${product["serial-number"]}' class="btn btn-primary">View Details</a>
            </div>         
        `;
});

好像不行。我将如何纠正这个问题?

我认为你应该使用

product.year = product.year ?? ''

而不是

let year = "";
if (product.year === undefined) {
  year = product.year;
}

您可以在输出字符串中使用 nullish coalescing operator 内联。

product.photos.map(() => {
    // output the data
    output += `
            <div class="card">
              <img class="img-fluid" src=${product.photos[0].text} alt=${product.model} />
              <h3>${product.year ?? ''} ${product.manufacturer} ${product.model}</h3>
              <p>${product.hours} hours</p>
              <a href='https://used.battlefieldequipment.ca/en/${product["group-code"]}/${product["serial-number"]}' class="btn btn-primary">View Details</a>
            </div>         
    `;
});