【问题标题】:Determine If Variable Is Present in an Array in ES6确定变量是否存在于 ES6 中的数组中
【发布时间】:2022-01-10 05:03:24
【问题描述】:

如何确定变量status 是否存在于数组中并仅显示一次?

const responses = [
    {
        "productName": "Required"
    },
    null,
    {
        "status": "Remove invalid product"
    },
    {
        "status": "Remove invalid product"
    }
]


<div>{responses[2]?.status}</div>

预期输出

Remove invalid product

【问题讨论】:

  • 看起来你必须过滤数组并检查。到目前为止你有没有尝试过?
  • 什么变量?
  • @Bergi。 status
  • 这是一个属性,而不是一个变量。因此,您正在尝试确定数组是否包含一个(或多个)具有.status 属性的对象?然后显示第一个?
  • @Bergi。是的,没错

标签: javascript reactjs ecmascript-6


【解决方案1】:

我们只需要一个函数Array.find()就可以做到这一点。我们可以通过检查它是否等于函数内部的Remove invalid product 来做到这一点。请参阅下面的示例。

const responses = [{
    "productName": "Required"
},
null,
{
    "status": "Remove invalid product"
},
{
    "status": "Remove invalid product"
}
];

console.log(responses.find(status => status?.status === 'Remove invalid product')?.status ? responses.find(status => status?.status === 'Remove invalid product').status : "No invalid product found");

希望对您有所帮助!

【讨论】:

  • 如果我这样做会出现语法错误&lt;div&gt;{responses.find(status =&gt; status?.status === 'Remove invalid product').status)}&lt;/div&gt;
  • 究竟是什么错误? @约瑟夫
  • 如果没有具有status属性的对象怎么办?试试这个输入数据:responses = [{"productName": Required"}]
  • @Joseph 我的代码没有错误。如果将代码粘贴到您在另一个答案中发布的代码沙箱中的示例中,您的代码末尾会有一个额外的)
【解决方案2】:

您可以使用array.find() 来完成。试试这个代码对你有帮助!

function App() {
  const responses = [
    {
      "productName": "Required"
    },
    null,
    {
      "status": "Remove invalid product"
    },
    {
      "status": "Remove invalid product"
    }
  ];

  return (
    <div> checkResponses : {responses.find(x => { if (x && x.status == "Remove invalid product") return x.status }).status}</div>
  );
};
export default App;

【讨论】:

  • 你能转换成 es6 吗?
  • 我觉得这种循环有点矫枉过正,你可以在一行代码中做到这一点。有关详细信息,请参阅我的答案。
  • @Joseph 我将答案转换为 ES6 再试一次!
  • 这个有更短的版本吗?
  • 我认为没有。这对你更好!
【解决方案3】:

强文本

const responses = [
    {
        "productName": "Required"
    },
    null,
    {
        "status": "Remove invalid product"
    },
    {
        "status": "Remove invalid product"
    }
];

console.log(responses.find(variable => variable?.hasOwnProperty('status'))?.status);

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
  • 尝试添加您所添加内容的描述,甚至可能是代码 sn-p。
  • 虽然这段代码 sn-p 可以解决问题,但它没有解释为什么或如何回答这个问题。请include an explanation for your code,因为这确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
猜你喜欢
  • 1970-01-01
  • 2016-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-27
  • 2015-06-09
  • 2013-03-22
  • 1970-01-01
相关资源
最近更新 更多