Javascript 如何检查值是否存在于另一个属性json模式中

Javascript 如何检查值是否存在于另一个属性json模式中,javascript,json,jsonschema,Javascript,Json,Jsonschema,我需要验证该值是否存在于json文件中的其他属性中,而不是模式文件中。我想知道这是否可能 我已经搜索了一些关键字,如“lookup”或“reference”,但结果是对模式文件的引用,而不是json数据 下面是模式 { "$schema": "http://json-schema.org/draft-07/schema", "title": "List of people cars", "properties": { "car":{ "type":"array",

我需要验证该值是否存在于json文件中的其他属性中,而不是模式文件中。我想知道这是否可能

我已经搜索了一些关键字,如“lookup”或“reference”,但结果是对模式文件的引用,而不是json数据

下面是模式

{
  "$schema": "http://json-schema.org/draft-07/schema",
  "title": "List of people cars",
  "properties": {
    "car":{
      "type":"array",
      "items": {
        "properties": {
          "name": {
            "type":"string"
          }
        }
      }
    },
    "people": {
      "type":"array",
      "items":{
        "properties": {
          "fullname":{
            "type":"string"
          },
          "cars":{
            "type":"string"
            // somehow validate if the car exist in car properties
          }
        }
      }
    }
  }
}
下面是json数据

{
  "$schema": "./schema.json",
  "car": [
    {
      "name": "Lamborghini"
    }
  ],
  "people": [
    {
      "fullname": "Ucok",
      "cars": "Lamborghini" //check if the car name exist in the car properties
    }
  ]
}

我预计people对象的cars属性值将从上面列出的car列表中自动完成,以检查javascript中是否存在一个值,您可以使用find/findIndex

let test = {
  "$schema": "./schema.json",
  "car": [
    {
      "name": "Lamborghini"
    }
  ],
  "people": [
    {
      "fullname": "Ucok",
      "cars": "Lamborghini" //check if the car name exist in the car properties
    }
  ]
};

test.car.find((item) => item.name === 'Lamborghini'); // will return {name: 'Lamborghini'}
test.car.find((item) => item.name === 'Ferrari'); // will return undefined

test.car.findIndex((item) => item.name === 'Lamborghini'); // will return 0
test.car.findIndex((item) => item.name === 'Ferrari'); // will return -1


如果返回值未定义或为-1,则该值不存在

我感谢您的回答。但我问的是json,而不是javascript。只是假设您标记了javascript