Java脚本代码错误(初级)
Java script code error (beginner level)
我的 JavaScript 代码哪里出错了?
var friends = {
bill: {
firstName: 'Bill',
lastName: 'Gates',
number: 23123,
address: ['One Microsoft Way', 'Redmond', 'WA', '98052']
},
steve: {
firstName: 'Steve',
lastName: 'Trueman',
number: 123123,
address: ['One Microsoft Way', 'Redmond', 'WA', '98052']
}
};
/*
var list = function(friends) {
for (var firstName in friends) {
console.log(firstName)
// Use object[key] to access
// the corresponding value
}
}
*/
var search = function() {
for (var firstName in friends) {
if (firstName === 'Steve') {
console.log(friends[steve]);
return friends[steve];
} else {
console.log("not cool")
};
}
};
首先,search()
函数需要在某处执行...
search();
这是我要更改为...
var search = function () {
for (var f in friends) {
if (friends[f].firstName === 'Steve') {
console.log(friends[f]);
return friends[f];
} else {
console.log("not cool")
};
}
};
...注意 f in frients
,这就像数组的索引,允许(稍后)friends[f]
和 friends[f].firstname
作为适当的引用。
函数中的循环与您想象的不一样。
使用 for(var firstName in friends)
并不意味着您从 friends
中的每个对象获得 firstName
属性。您将获得 friends
中每个对象的键,该键被放入名为 firstName
.
的变量中
根据您当前的数据,变量将在第一次迭代中获得值 "bill"
,然后在第二次迭代中获得值 "steve"
。
此外,为未找到任何内容(记录 "not cool")而采取的操作为时过早。当您在循环中执行此操作时,您将为每个人获得其中一个,直到找到匹配项。确定什么都没有找到将在循环之后完成,即当对象中的所有项目都已检查时。
该函数更有用的版本是:
function search(name) {
for (var key in friends) {
var friend = friends[key];
if (friend.firstName === name) {
return friend;
};
}
return null;
};
用法:
var f = search('Steve');
if (f != null) {
// found steve
} else {
// not found
}
我的 JavaScript 代码哪里出错了?
var friends = {
bill: {
firstName: 'Bill',
lastName: 'Gates',
number: 23123,
address: ['One Microsoft Way', 'Redmond', 'WA', '98052']
},
steve: {
firstName: 'Steve',
lastName: 'Trueman',
number: 123123,
address: ['One Microsoft Way', 'Redmond', 'WA', '98052']
}
};
/*
var list = function(friends) {
for (var firstName in friends) {
console.log(firstName)
// Use object[key] to access
// the corresponding value
}
}
*/
var search = function() {
for (var firstName in friends) {
if (firstName === 'Steve') {
console.log(friends[steve]);
return friends[steve];
} else {
console.log("not cool")
};
}
};
首先,search()
函数需要在某处执行...
search();
这是我要更改为...
var search = function () {
for (var f in friends) {
if (friends[f].firstName === 'Steve') {
console.log(friends[f]);
return friends[f];
} else {
console.log("not cool")
};
}
};
...注意 f in frients
,这就像数组的索引,允许(稍后)friends[f]
和 friends[f].firstname
作为适当的引用。
函数中的循环与您想象的不一样。
使用 for(var firstName in friends)
并不意味着您从 friends
中的每个对象获得 firstName
属性。您将获得 friends
中每个对象的键,该键被放入名为 firstName
.
根据您当前的数据,变量将在第一次迭代中获得值 "bill"
,然后在第二次迭代中获得值 "steve"
。
此外,为未找到任何内容(记录 "not cool")而采取的操作为时过早。当您在循环中执行此操作时,您将为每个人获得其中一个,直到找到匹配项。确定什么都没有找到将在循环之后完成,即当对象中的所有项目都已检查时。
该函数更有用的版本是:
function search(name) {
for (var key in friends) {
var friend = friends[key];
if (friend.firstName === name) {
return friend;
};
}
return null;
};
用法:
var f = search('Steve');
if (f != null) {
// found steve
} else {
// not found
}