클릭 이벤트 내에서 외부 함수를 호출 어레이로서 그것의 인수를 전달
$(document).ready(function(){
var available=["1","2","3","4"];
var taken=[];
var solutions=[["1","2"],["3","4"]];
// external function
function check(input){
for(var i=0;i<solutions.length;i++){
var result=solutions[i].every(function(elem){
return input.includes(elem)==true;
})
if(result==true){
return result;
}
}
}
// click event
$("table td").click(function(){
debugger
var removed=available.splice(available.indexOf(this.id),1);
taken.push(removed);
check(taken); // the call works if the array *taken* is initialize
//by hand, but doesn't work filling the array with
//the push method as always return an undefined value
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table style="width:100%">
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
</tr>
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
</table>
I는 어레이에 대해 표 클릭으로부터 유도 된 값으로 충전 배열 (는 촬영) 확인하려고 솔루션 배열에 포함되어 있습니다. 이를 위해 해당 작업을 수행하는 하나의 매개 변수로 함수 검사를 수행했습니다. 배열 을 사용하여을 인수로 전달하고 메서드 푸시를 통해 사용 가능한 값으로 채 웁니다.
스코프 내가 기능 수표의 반환 솔루션 중 하나를 충족 값으로 촬영 를 초기화하는 경우이 참 잘 때문에 것을 보인다. 변수 에 푸시 메서드를 적용한 경우 반환 값은 항상 정의되어 있지 않으므로 이 찍힌은 푸시로 채워지지 않았거나 유형이 서로 다른 것 같습니다.
지금까지 시도한 코드와 문제를 복제 한 데모를 만드십시오. – Manish
'availableIds'는 어디에서 왔습니까? 'available'라고 불리는'var'을 선언하고 있지만'availableIds'는 선언하지 않았습니다. – DavidDomain
[jsfiddle] (https://jsfiddle.net/cortazar11/zjh3q6hz/). 두 명의 플레이어를 클릭하고 X를 클릭하십시오. – user1881983