2015-05-04 25 views
-2

返回將把朋友[i]放在哪裏?Javascript。嘿,回報將把朋友[我]放在哪裏?

返回將把朋友[i]放在哪裏?

返回將把朋友[i]放在哪裏?

var friends = { 
    steve: { 
     firstName: "Steve", 
     lastName: "Jobs", 
     number: "(831)524-2213", 
     address: ["531 Recht St.","Hollister","CA","95037"] 
    }, 
    bill: { 
     firstName: "Bill", 
     lastName: "Gates", 
     number: "(831)524-0349", 
     address: ["310 E Dunne Ave", "Morgan Hill", "CA","95037"] 
    } 
}; 
var search = function(name){ 
    for (var i=0;i<friends;i++){ 
     if (friends[i].firstName === name) { 
      console.log(friends[i]); 
      return friends[i]; 
     } 
    } 
}; 
+0

在第19行,其中將返回把朋友[我]? –

+0

你有一個叫做朋友而不是數組的對象 –

回答

1

的問題是朋友是一個對象不是一個數組,所以如果你想保持friends作爲對象本身你的循環是錯誤的

,那麼你就需要遍歷該對象的屬性

var search = function (name) { 
    for (var key in friends) { 
     if (friends.hasOwnProperty(key) && friends[key].firstName === name) { 
      console.log(friends[key]); 
      return friends[key]; 
     } 
    } 
}; 

演示:Fiddle


或者使用數組,而不是

var friends = [{ 
    firstName: "Steve", 
    lastName: "Jobs", 
    number: "(831)524-2213", 
    address: ["531 Recht St.", "Hollister", "CA", "95037"] 
}, { 
    firstName: "Bill", 
    lastName: "Gates", 
    number: "(831)524-0349", 
    address: ["310 E Dunne Ave", "Morgan Hill", "CA", "95037"] 
}]; 
var search = function (name) { 
    for (var i = 0; i < friends.length; i++) { 
     if (friends[i].firstName === name) { 
      console.log(friends[i]); 
      return friends[i]; 
     } 
    } 
}; 

演示:Fiddle

+0

他們說,..在循環中是一種不好的做法......他們認爲(..; ..; ..)比......更好。 http://stackoverflow.com/questions/2265167/why-is-forvar-item-in-list-with-arrays-considered-bad-practice-in-javascript是一個真實的? –

+0

@jubilukbabawakis看看標題'爲什麼'for(var item in list)'數組在JavaScript中被認爲是不好的做法?' - 它與處理數組有關,在你的情況下它不是數組...' –

+0

好的。 ..我現在知道...但迴歸將把回報朋友[鑰匙]放在哪裏? –