【问题标题】:Check if the value of a variable exists in an object检查变量的值是否存在于对象中
【发布时间】:2022-01-25 22:45:34
【问题描述】:

我有一个 Typescript 项目,我需要知道变量的值是否在对象的任何属性中。

这是对象:

let listDump = [
   {
     "properties":{
        "title":"CARS"
     }
  },
  {
     "properties":{
        "title":"HOME"
     }
  },
  {
     "properties":{
        "title":"COUNTRY"
     }
  }
];

这是声明的变量:

let newData = 'ANIMALS'

这是我检查它是否存在的方法:

for (let sheet of listDump) {
  if (sheet.properties.title == newData) {
    console.log(`do not create property`)
  } else {
    console.log('create property') 
  }
}

问题:做3次检查对else操作3次

我需要知道的是如何检查它是否存在而不需要遍历对象并且只操作一次以防它不存在

【问题讨论】:

  • 试试.some?
  • 这能回答你的问题吗? Check if a key exists inside a JSON object
  • @SørenEriksen 检查键,而不是值
  • 抱歉,有点太快了
  • @stark,您无法摆脱对数组的迭代。至少some 将在第一场比赛中停止。

标签: javascript arrays typescript object


【解决方案1】:

您可以使用<Array>.some

listDump.some(sheet => sheet.properties.title == newData) // returns true | false

【讨论】:

  • 我已经更改了变量的值,现在它在 JSON 对象中。当我执行listDump.some(sheet => sheet.properties.title == fileName) 输出true 时,但当我执行listDump.some(sheet => sheet.properties.title != fileName) 时它也输出true,为什么会发生这种情况?如何更改条件以使它们不同?
  • 第一个检查是否有任何元素的标题等于文件名,第二个检查是否有任何元素的标题不是文件名----如果你想检查每个元素是否有一个不是文件名的标题将第二条语句中的 some 替换为 every 或在第一条语句的开头添加非 !
猜你喜欢
  • 1970-01-01
  • 2019-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-05
  • 1970-01-01
  • 2011-01-13
  • 1970-01-01
相关资源
最近更新 更多