2012-07-27 49 views
0

我有两个数组,而我比较两个值,然后设置一个JSON对象:for循环打破了数组比较后因故

var compare = ["hh", "pictures", "videos", "aboutMe", "contactMe", "cat", "location"]; 
var data = ["pictures", "videos", "aboutMe", "contactMe", "cat", "location"]; 
    for (var j=0; j<compare.length; j++) { 
     if (compare[j] === data[j]) { 
      self.MenuItems.menu_item[j].added = "added"; 
     }else if (compare[j] !== data[j]){ 
      self.MenuItems.menu_item[j].added = ""; 
     } 
    } 

出于某种原因,所有self.MenuItems.menu_item[j],他们都无论是相等的“添加”或“”; ...

+1

你期望什么?如果它们相等,则设置为“”添加“;”如果没有,则转到'“”'。 – pimvdb 2012-07-27 19:24:55

+0

以及所有值都设置为“添加”或“”...不只是一个“”和6“添加” – re1man 2012-07-27 19:26:36

+0

从'0'到'compare.length - '的所有'self.MenuItems.menu_item' 1'会分配他们的'added'属性。 – Li0liQ 2012-07-27 19:28:02

回答

1

只要你知道这种情况是不是很有效,在这里应该如何

if (compare[j] === data[j]) { 
    self.MenuItems.menu_item[j].added = "added"; 
}else { 
    self.MenuItems.menu_item[j].added = ""; 
} 

和代码做什么打算。除非你有其他想法。

+0

如果你解除引用'self.MenuItems.menu_item' – Bergi 2012-07-27 19:39:21