I have used the code below, but it enters the inner loop (//some code here) with the last index of i:
for (i = 0; i < window.opener.selectedItemsTask.length; i++) {
    if (window.opener.selectedItemsTask[i] != undefined) {
        var tempId = window.opener.selectedItemsTask[i].Id;
        var taskQuery = "/xrmservices/2011/OrganizationData.svc/TaskSet?$select=CreatedBy,Description,new_CustomerAddress,new_CustomerName,new_CustomerPhone,new_Local,new_NewTimeFrame,new_TaskDeliveryMan,new_Type,ScheduledEnd,Subject&$filter=ActivityId eq guid'" + tempId + "'";
        var requestUrl = window.opener.Xrm.Page.context.getClientUrl() + taskQuery;
        var request = new XMLHttpRequest();
        request.open("GET", requestUrl, true);
        request.setRequestHeader("Accept", "application/json");
        request.setRequestHeader("Content-Type", "application/json; charset=utf-8");
        request.onreadystatechange = function () {
            if (request.readyState == 4 && request.status == 200) {
                var json = window.opener.$.parseJSON(request.responseText);
                if ((json != undefined) && (json.d != undefined) && (json.d.results != undefined) && (json.d.results[0] != null)) {
                    var responseResults = json.d.results[0];
                    //SOME CODE HERE
                }
            }
        };
    }
}