Javascript 如何检查值是否存在于另一个属性json模式中
我需要验证该值是否存在于json文件中的其他属性中,而不是模式文件中。我想知道这是否可能 我已经搜索了一些关键字,如“lookup”或“reference”,但结果是对模式文件的引用,而不是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",
{
"$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