인벤토리가 있고 올바른 화학 물질을 혼합해야하는 JavaScript에서 전보 봇으로 화학 게임을 만들고 있습니다. 인벤토리가 배열에 포함되어 있으며 인벤토리를 붙여 넣기 만하면 수준을 올리는 것을 막기 위해 사용자 입력에 독점적으로 필요한 화학 물질이 포함되어 있는지 확인해야합니다. 정렬. 예를 들어문자열에 배열의 특정 요소가 포함되어 있는지 확인하는 방법
:
users[id].inventory = ["Beaker", "Water", "Baking soda", "Heating plate", "Hydrochloric acid"];
if (users[id].level === 1 &&
msg.text.toLowerCase().indexOf('baking soda') !== -1 &&
msg.text.toLowerCase().indexOf('hydrochloric acid') !== -1 &&
msg.text.toLowerCase().indexOf('beaker') === -1 &&
msg.text.toLowerCase().indexOf('water') === -1 &&
msg.text.toLowerCase().indexOf('heating plate') === -1) {
msg.answer("You mix some baking soda with hydrochloric acid.\nSome fun fizzing happens and you produce useless CO2 gas.");
}
당신이 훨씬 더 큰 재고를 얻을 것이다이 매우 큰 경우-문에이 방법을 이끌 것입니다 higer 수준에서. 이것은 나빠 보이고 더 좋은 방법이 있어야합니다. 독점적 인 indexOf()
또는 다른 솔루션과 같은 것이 있습니까? 예를 들어 arr.filter()
을 확인했지만이 방법을 구현하는 좋은 방법을 찾을 수 없습니다.
당신이 배열을 반복하는 루프를 사용하여 시도 적이 :
다음은 샘플입니다? – nnnnnn