Проверьте, совпадают ли значения (без учета регистра) - PullRequest
0 голосов
/ 04 апреля 2020

Я пытаюсь проверить, совпадают ли значения объекта, и если да, вернуть true. Например, если все пятницы в порядке, верните true. Если нет, верните false.

Я пытался использовать что-то подобное, но это не работает ...

let schedule = {
  "paul": {
    "Friday": "ok",
    "Saturday": "OK",
    "Sunday": "--"
  },
  "peter": {
    "Friday": "Ok",
    "Saturday": "oK",
    "Sunday": "ok"
  },
  "mary": {
    "Friday": "ok",
    "Saturday": "OK",
    "Sunday": "--"
  }
}

const re = /ok/i

if (Object.values(schedule).every(obj => re.test(obj.Friday))) {
  console.log('match 05')
} else if (Object.values(schedule).every(obj => re.test(obj.Saturday))) {
  console.log('match 06')
} else if (Object.values(schedule).every(obj => re.test(obj.Sunday))) {
  console.log('match 07')
}

Ответы [ 2 ]

2 голосов
/ 04 апреля 2020

Если вы хотите точное совпадение, вы можете сделать это без использования регулярных выражений. Также не следует комбинировать условие с else if, просто используйте if по отдельности.

Вы можете попробовать следующий способ:

var schedule = {
 "paul":{"Friday":"ok","Saturday":"OK","Sunday":"--"},
 "peter":{"Friday":"Ok","Saturday":"oK","Sunday":"ok"},
 "mary":{"Friday":"ok","Saturday":"OK","Sunday":"--"}
}

const s = 'ok';
const Friday = Object.values(schedule).every(obj => s == obj.Friday.toLowerCase());
const Saturday = Object.values(schedule).every(obj => s == obj.Friday.toLowerCase());
const Sunday = Object.values(schedule).every(obj => s == obj.Sunday.toLowerCase());
if(Friday) {
  console.log('match 05')
} 
if(Saturday) {
  console.log('match 06')
} 
if(Sunday) {
  console.log('match 07')
}
0 голосов
/ 04 апреля 2020

Ваша структура if / else прекращает обработку, если первая проверка верна.

Попробуйте выполнить следующее (удалив лишние).

const schedule = {
 "paul":{"Friday":"ok","Saturday":"OK","Sunday":"--"},
 "peter":{"Friday":"Ok","Saturday":"oK","Sunday":"ok"},
 "mary":{"Friday":"ok","Saturday":"OK","Sunday":"--"}
}

const re = /ok/i

if (Object.values(schedule).every(obj => re.test(obj.Friday))) {
  console.log('match 05')
}
if (Object.values(schedule).every(obj => re.test(obj.Saturday))) {
  console.log('match 06')
}
if (Object.values(schedule).every(obj => re.test(obj.Sunday))) {
  console.log('match 07')
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...