Исправлена ​​некоторая грамматика - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь увидеть, совпадает ли значение из моих данных с массивом значений, чтобы вернуть true или false.

Вот что я придумала до сих пор ...

acceptedGrades = ['A1','A2','A3','B1','B2','B3','C1','C2','C3'];

this.state.isValidGrade = _.every(acceptedGrades, d => item.grade === value);

например. Если item.grade возвращает A1 grade: 'A1', возвращает true, если item.grade возвращает значение, которого нет в acceptGrades, возвращает false.

Я использовал тот же оператор для поиска свойства с hasOwnProperty, и это просто нужно искать значение свойства.

Может использовать библиотеку lodash.

1 Ответ

0 голосов
/ 21 января 2019

Есть несколько способов справиться с этим.Я думаю, что вы после find, filter, includes или findIndex.every здесь не подходит, потому что он оценивает весь массив, чтобы убедиться, что все значения удовлетворяют вашему условию.Я думаю, вы просто пытаетесь сопоставить оценку с элементом в массиве, если я правильно понимаю.

const acceptedGrades = ['A1','A2','A3','B1','B2','B3','C1','C2','C3'];

// Get first match:
console.log(acceptedGrades.find( g => g === 'B2')); // returns 'B2'

// Get All Matches:
console.log(acceptedGrades.filter( g => g === 'B2')); // returns ['B2']

// Get Index of first match:
console.log(acceptedGrades.findIndex( g => g === 'B2' )); // returns 4

// See if array 'includes' the value
console.log(acceptedGrades.includes('B2')); // returns true
...