【问题标题】:Javascript. Hey where will the return put the friend[i]?Javascript。嘿,返回将把朋友[i]放在哪里?
【发布时间】:2015-07-13 10:09:32
【问题描述】:

返回将把朋友[i]放在哪里?

返回将把朋友[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];
        } 
    }
};

【问题讨论】:

  • 在第 19 行,返回将把朋友 [i] 放在哪里?
  • 你有一个对象叫friends而不是数组

标签: javascript


【解决方案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

【讨论】:

  • 他们说 for .. in 循环是一种不好的做法......他们说使用 for(..;..;..) 比使用 for .. in 更好。 stackoverflow.com/questions/2265167/… 这是真的吗?
  • @jubilukbabawakis 看标题Why is 'for(var item in list)' with arrays considered bad practice in JavaScript? - 它与处理数组有关,在您的情况下它不是数组...
  • 好的……我现在知道了……但是返回的朋友们[key]会放在哪里?
  • @jubilukbabawakis 你有它的地方很好......看看附加的小提琴看看它工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-14
  • 1970-01-01
  • 2012-10-14
  • 2013-09-21
  • 2011-03-18
  • 2020-09-30
  • 1970-01-01
相关资源
最近更新 更多