【问题标题】:Do not return null values in loop不要在循环中返回空值
【发布时间】:2016-09-26 13:10:36
【问题描述】:

当很少有image_url 可能是null 时,如何只返回image_url?

var lineItems = [
  {
    description: "Packaging",
    image_url: null,
    ...
  },
  {
    description: "T-Shirt",
    image_url: <the-url-link>,
    ...
  }
]

反应中:

...

lineItems.map(function(line){
  if (line.description !== "Packaging") {
    var img = line.image_url;
  }
  console.log(img);
});

...

我不断收到null 以及控制台中的网络链接。如何仅获取具有链接的image_url。 “包装”永远不会有 image_url 链接;永远是null。

【问题讨论】:

标签: javascript loops reactjs


【解决方案1】:

您只需在此处使用filter 即可为您执行此操作。

const nonNulls = lineItems.filter(item => item.image_url !== null);

这会将所有非空值过滤到一个变量中。

【讨论】:

  • 这个方法是返回对象,我只需要字符串urls。
  • 您需要像 Emil 使用的那样将 .map 链接到它。 .map(obj =&gt; obj.image_url) 你很好。
  • @SterlingArcher 很好,简明扼要。小心 const 和 Lambda functions 虽然兼容性是一个问题。
【解决方案2】:

var data = [
  {
    url: null
  },
  {
    url: null
  },
  {
    url: '123'
  },
  {
    url: null
  }
]
console.log(
  data.filter(function (a) {
    return a.url != null
  }).map(function (a) {
    return a.url
  })
)

【讨论】:

    猜你喜欢
    • 2016-07-20
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 2016-08-23
    • 2018-12-03
    • 2023-02-14
    相关资源
    最近更新 更多