2016-03-07 146 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 
    // ... 
}); 

创建范围和正确的对象将查找回调中使用。