javascript - 使用 for-in 循环查找价值时遇到问题
问题描述
我试图遍历这个数组的对象元素并在“for in”循环找到值“bill”时返回“gotcha,bill”。然而,它似乎只返回了四次“不是他”。我已经浏览了好几次,但我不确定我错过了什么。这是我第一次使用 for in 循环,所以我可能会误解它的工作原理。
任何帮助,将不胜感激!
var names = [{name: 'steven', age: 22}, {name: 'bill', age: 13}];
function findBill(array) {
for(let i = 0; i < array.length; i++) {
for(let key in array[i]) {
if(key === 'bill') {
return console.log('gotcha, bill');
} else {
console.log('not him');
}
}
}
}
findBill(names)
解决方案
这里。我将您的for
循环更改为,forEach
但这不是解决您问题的主要内容。这是您访问对象属性的方式。我使用forEach
它是因为(对我来说)从对象中获取所需的数据会更容易。
var names = [{name: 'steven', age: 22}, {name: 'bill', age: 13}];
function findBill(array) {
array.forEach(function(person){
if(person.name === 'bill') {
return console.log('gotcha, bill');
} else {
console.log('not him');
}
});
}
findBill(names)
for
如果您坚持使用循环,这就是应该的样子。
var names = [{name: 'steven', age: 22}, {name: 'bill', age: 13}];
function findBill(array) {
for(let i = 0; i < array.length; i++) {
if(array[i].name === 'bill') {
return console.log('gotcha, bill');
} else {
console.log('not him');
}
}
}
findBill(names)
推荐阅读
- ios - 如何在 iOS 上嵌入用户凭据以供 ArcGIS 运行时 SDK 访问门户?
- node.js - Snowflake NodeJS Driver SELECT .... WHERE id IN (??) 子句
- assembly - 强制 gcc 将所有代码放在序言和结尾之间
- arrays - 带数组的重载赋值运算符
- sql - ORACLE 从 url 读取文件
- javascript - 在发送到客户端之前,如何从 Parse 服务器访问和消毒我的 Javascript 用户对象?
- java - 带网关的 CORS
- swift - Swift UI IOS 15 ScrollView 调整
- intellij-idea - 如何在 IntelliJ > Prefs > Languages & Frameworks > Node.js 和 NPM 中将 pnpm 指定为“包管理器”?
- c++ - 使用数组实现最小最大堆