javascript - 为映射的 true 或 false 值的集合返回 true/false

标签 javascript arrays lodash

我有一个接受“成绩”的数组(称为 acceptedGrades)。我的 json 返回每个人的成绩。该成绩必须在 acceptedGrades 数组中才能返回 true,否则返回 false。示例:

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

for "A1" returns true;
for "Z1" returns false;

下一段代码会查找它来决定它是真还是假。

data.map((item) => {
    this.state.isValidGrade = acceptedGrades.includes(item.grade.toUpperCase());
});

现在,问题是我想知道是所有项目都返回 true 还是有人返回 false,例如

0:grade: 'B1' //true
1:grade: 'C2' //true
2:grade: 'A3' //true
// All return TRUE so expected result should be TRUE

0:grade: 'B11' //false
1:grade: 'C2' //true
2:grade: 'A3' //true
// Not All return TRUE so the expected result should be FALSE

我可能会以错误的方式解决这个问题,并且相信有一种更简单的方法可以将所有成绩值作为一个集合来查看 acceptedGrades 数组,而不是查看每个人 - 任何建议或答案?

最佳答案

您可以将逻辑包装在一个方法中,并实际检查您是否可以找到未包含在有效成绩集中的 grade,如果您发现某些项目验证此条件,您就会知道整个项目数组将无效:

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

// Data examples.

const data1 = [
    {name: "Josh", grade: "B1"},
    {name: "Lucas", grade: "C2"},
    {name: "Damian", grade: "A3"}
];

const data2 = [
    {name: "Josh", grade: "B11"},
    {name: "Lucas", grade: "C2"},
    {name: "Damian", grade: "A3"}
];

// Method that return if a set of grades is valid or not.

const isValidGrade = (data) =>
{
    return !data.find(({grade}) => !acceptedGrades.includes(grade.toUpperCase()));
};

console.log(isValidGrade(data1));
console.log(isValidGrade(data2));

但是,如果你使用every()会更清楚:

const isValidGrade = (data) =>
{
    return data.every(({grade}) => acceptedGrades.includes(grade.toUpperCase()));
};

关于javascript - 为映射的 true 或 false 值的集合返回 true/false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54281689/

相关文章:

javascript - 如何在 javascript 或 lodash 中将每个数组元素转换为单独的数组

javascript - 使用下划线确定对象是否存在于深度嵌套的对象数组中?

javascript - 如何在我自己的网站模板中使用 StackExchange QA 编辑器?

javascript - 如何在响应式背景上调整 div

javascript - RegEx 模式不适用于 AJAX 响应

javascript - 如何将数组索引拆分为该特定索引的 2 个索引

arrays - 在Powershell中具有列表和值的嵌套JSON

javascript - ES6 从嵌套对象中获取属性

javascript - 在正则表达式文字中使用字符类中的/总是安全的吗?

javascript - 将 postgresQL 中的时间戳附加到数组时间戳列