我正在尝试查看数据中的值是否与值数组匹配以返回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库。
答案 0 :(得分:3)
有两种方法可以解决这个问题。我认为您在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