Как проверить массив, включающий в себя определенный тип объекта с фреймворком hapi / joi в javascript? - PullRequest
0 голосов
/ 17 мая 2019

Мой объект имеет вид:

"resources":[
     {
        "date": "2019-04-17",
        "values":[
            {"Customer":"C_name"},
            {"Environment":66.5},
            {"Other": {"goods": "feature", "present": 12}
     }
]

Я хочу знать, как проверять значения, я имею в виду, что массив значений должен содержать хотя бы один объект клиента, объект Environment и другие объекты.Как использовать @ hapi / joi framework для проверки этого массива, и он должен содержать разные объекты в этом массиве?

1 Ответ

0 голосов
/ 17 мая 2019

Использование комбинации map, every и some:

const resources = [{
  "date": "2019-04-17",
  "values": [{
      "Customer": "C_name"
    },
    {
      "Environment": 66.5
    },
    {
      "Other": {
        "goods": "feature",
        "present": 12
      }
    }
  ]
}]

function valid(arr) {
  return arr
    .map(x => x.values)
    .every(y =>
      y.some(z => z.hasOwnProperty("Customer"))
      && y.some(z => z.hasOwnProperty("Environment")) 
      && y.some(z => z.hasOwnProperty("Other"))
    )
}

console.log(valid(resources));
...