在Javascript对象的每个键中检查特定值

在Javascript对象的每个键中检查特定值,javascript,html,css,reactjs,javascript-objects,Javascript,Html,Css,Reactjs,Javascript Objects,我有以下几行: <button className={`actionBoxButton ${props.moves[0].moveName !== "FirstPassMove" && props.moves[0].moveName !== "PassMove" ? "actionBoxButtonGrey" : ''}`} 如果您想添加类名,以防至少有一个移动具有FirstPassMove或PassMove名称,您应该使用 我猜您希望检查所有移动是否满足约束,在这种情

我有以下几行:

<button className={`actionBoxButton ${props.moves[0].moveName !== "FirstPassMove" && props.moves[0].moveName !== "PassMove"  ? "actionBoxButtonGrey" : ''}`}

如果您想添加类名,以防至少有一个移动具有
FirstPassMove
PassMove
名称,您应该使用


我猜您希望检查所有
移动是否满足约束,在这种情况下,您可以使用
Array.prototype.each
来确保每个移动都满足约束。如果您只需要一些
移动
来满足约束,则可以使用
Array.prototype.some

//例如
常量道具={
移动:[
{moveName:'FirstPassMove'},
{moveName:'PassMove'},
{moveName:'PassMove'},
{moveName:'OtherPassMove'},
]
};
函数isValidMove({moveName}){
返回moveName!=“FirstPassMove”
&&moveName!=“PassMove”;
}
函数getActionBoxButtonClassName(hasColor){
返回'actionBoxButton${hasColor?'actionBoxButtonGrey:'}';
}
console.log([
getActionBoxButtonClassName(props.moves.every(isValidMove)),
getActionBoxButtonClassName(props.moves.some(isValidMove))

]);您可以通过为动态类名定义单独的函数来简化jsx,如下所示:

const check=()=>{
让className_quo;;
//如果this.props.moves是数组,请在中使用而不是
为了(让我加入这个。道具。动作){
if((this.props.moves[i].moveName!=“FirstPassMove”)&&(this.props.moves[i].moveName!=“PassMove”)){
className=“actionBoxButtonGrey”;
}
}
返回类名;
}
按钮

假设你的
props.moves
是一个数组,如果这个字符串在
props.moves
array

中,它将返回true或false,谢谢!使用带有for循环的外部函数的想法确实解决了我的问题
const hasPass = moves.some(({ moveName }) => (
  moveName === "FirstPassMove" || 
  moveName === "PassMove"
));
props.moves.includes('FirstPassMove')