2016-03-07 147 views
0

我在使用Javascript解析時遇到問題。我只是試圖循環訪問數組中的對象列表。如果imageURL匹配Parse中的一個,則不執行任何操作。如果它們不是數組中的imageURL,則在Parse中,然後將該行添加到Parse。解析javascript for循環,創建多個對象而不重複

我認爲我的問題是同步性。它目前多次將同一行(同名,imageURL和fbURL)保存到Parse。基本上保存一行,並重復70次。

for (var i = 0; i < listobjects.length; i++) { 

     objName = listobjects[i]["name"] 
     objImageURL = listobjects[i]["imageURL"] 
     objfbURL = listobjects[i]["fbURL"] 

     console.log("NAME: " + listobjects[i]["name"]) 

     // Check if record is in Parse 
     var query = new Parse.Query(Recipe); 
     query.equalTo("imageURL", listobjects[i]["imageURL"]); 
     query.find({ 
     success: function(results) { 
      if (results.length > 0) { 
      // Do nothing. We have a result. Or maybe check if videoURL is present 
      console.log("Object is already in DB.") 
      } else { 


      // Save the new object. 
      var recipeObject = new Recipe(); 
      recipeObject.save({name: objName, imageURL:objImageURL, fbURL: objfbURL}, { 
       success: function(object) { 
       console.log("Object Saved!") 
       }, 
       error: function(model, error) { 
       console.log("Error saving object!") 
       } 
      }); 


      } 
     }, 
     error: function(error) { 
      alert("Error: " + error.code + " " + error.message); 
     } 
     }); 

    } 
+0

請幫忙! :) – drewg23

+0

你還沒有足夠的重現這個問題。 –

回答

1

變化

for (var i = 0; i < listobjects.length; i++) { 
    objName = listobjects[i]["name"] 
    // ... 
} 

listobjects.forEach(function(obj) { 
    // access obj.name, obj.imageURL 
    // ... 
}); 

創建範圍和正確的對象將查找回調中使用。