在javascript中使用for-in循环从对象中获取值
我是一名JS新手,正在努力理解在使用for-in循环时如何从对象中获取值。你们能和我分享一下你们的知识吗。谢谢 这是我的问题,下面的代码只是记录属性,我尝试使用for-in循环来查找对象是否包含值“apple” 试试这个:在javascript中使用for-in循环从对象中获取值,javascript,for-in-loop,Javascript,For In Loop,我是一名JS新手,正在努力理解在使用for-in循环时如何从对象中获取值。你们能和我分享一下你们的知识吗。谢谢 这是我的问题,下面的代码只是记录属性,我尝试使用for-in循环来查找对象是否包含值“apple” 试试这个: for (var key in mac) { if (mac[key] === 'apple'){ console.log('Contains apple'); } } 试试这个: for (var key in mac) { if (mac[key]
for (var key in mac) {
if (mac[key] === 'apple'){
console.log('Contains apple');
}
}
试试这个:
for (var key in mac) {
if (mac[key] === 'apple'){
console.log('Contains apple');
}
}
解决方案1 正如您的问题所述,如果您只想检查
apple
是否是对象的值之一,则可以使用如下方法
var foundApple = Object.keys(mac).some(function(key) {
return mac[key] === "apple";
});
console.log(foundApple);
var foundApple = false;
for (var key in mac) {
foundApple = (mac[key] === "apple");
if (foundApple) break;
}
注意:这两个函数都是对语言的补充,因此在使用它们之前,您可能需要检查兼容性
解决方案2:
如果您正在寻找与所有常见浏览器兼容的解决方案,您可以这样做
var foundApple = Object.keys(mac).some(function(key) {
return mac[key] === "apple";
});
console.log(foundApple);
var foundApple = false;
for (var key in mac) {
foundApple = (mac[key] === "apple");
if (foundApple) break;
}
解决方案1 正如您的问题所述,如果您只想检查
apple
是否是对象的值之一,则可以使用如下方法
var foundApple = Object.keys(mac).some(function(key) {
return mac[key] === "apple";
});
console.log(foundApple);
var foundApple = false;
for (var key in mac) {
foundApple = (mac[key] === "apple");
if (foundApple) break;
}
注意:这两个函数都是对语言的补充,因此在使用它们之前,您可能需要检查兼容性
解决方案2:
如果您正在寻找与所有常见浏览器兼容的解决方案,您可以这样做
var foundApple = Object.keys(mac).some(function(key) {
return mac[key] === "apple";
});
console.log(foundApple);
var foundApple = false;
for (var key in mac) {
foundApple = (mac[key] === "apple");
if (foundApple) break;
}
应该是
for (var key in mac) {
console.log(key, mac[key]);
}
应该是
for (var key in mac) {
console.log(key, mac[key]);
}
我想花点时间在这里给出我自己的答案。我之前查过了,很快就找到了答案。我将尝试解释一下,如果其他人对这个概念有困难(通常是新手) 概述 在vanilla Javascript/ECMAscript中,可以使用for循环构造函数通过数组或对象进行循环。for循环的格式只取决于循环的对象:数组或对象 请在此处阅读有关for循环的更多信息: 对于包含对象的循环 for循环的语法与数组稍有不同,通常称为“for in”循环 您可以在此处阅读有关Javascript中“for-in”循环的更多信息: 以下是语法:
for( key in object) {
console.log(key); // this logs the key name in the loop to the console
console.log(object[key]) // this logs the key value in the loop to the console
}
分解上面发生的事情:
key只是一个通用变量,表示循环中对象的键。这可以是您想要的任何内容:
for( someBullShit in object) {
console.log(someBullShit);
console.log(object[someBullShit]);
}
此循环的输出与前面的示例相同
在“for-in”循环中访问对象值
如上例所述,您可以访问“for in”循环中对象键的值,这与您通常访问的完全相同,只是您将使用“key变量”代替实际的键名
例如:
object[keyname] // this represents the value of a given key
var array = [1,2,3,4,5];
for(var i = 0; [condition]; [final-expression]) {
...
}
var array = [1,2,3,4,5];
for([initialization]; i < array.length ; [final-expression]) {
...
}
var array = [1,2,3,4,5];
for([initialization]; [condition]; i++) {
...
}
我还提供了以下额外信息,以防有人觉得有用:
对于带有数组的循环
循环的“标准”格式很简单:
对于([初始化];[条件];[最终表达式])
声明
简单来说:
初始化-设置一个起点(在Javascript中,出于计数目的,该起点的索引为0)
例如:
object[keyname] // this represents the value of a given key
var array = [1,2,3,4,5];
for(var i = 0; [condition]; [final-expression]) {
...
}
var array = [1,2,3,4,5];
for([initialization]; i < array.length ; [final-expression]) {
...
}
var array = [1,2,3,4,5];
for([initialization]; [condition]; i++) {
...
}
这意味着循环从0开始计数
条件-设置循环停止的时间。99.9%的时间,当循环成功循环每个项目一次时,您将告诉循环结束
例如:
object[keyname] // this represents the value of a given key
var array = [1,2,3,4,5];
for(var i = 0; [condition]; [final-expression]) {
...
}
var array = [1,2,3,4,5];
for([initialization]; i < array.length ; [final-expression]) {
...
}
var array = [1,2,3,4,5];
for([initialization]; [condition]; i++) {
...
}
这里的最终表达式值只是表示将这个变量的值增加1。我想花点时间把我自己的答案放在这里。我之前查了一下,很快就找到了答案。如果其他人对这个概念有困难,我会尝试解释一下(通常是新手) 概述 在vanilla Javascript/ECMAscript中,您可以使用for循环构造函数在数组或对象之间循环。for循环的格式取决于您循环的对象:数组或对象 请在此处阅读有关for循环的更多信息: 对于包含对象的循环 for循环的语法与数组稍有不同,通常称为“for in”循环 您可以在此处阅读有关Javascript中“for-in”循环的更多信息: 以下是语法:
for( key in object) {
console.log(key); // this logs the key name in the loop to the console
console.log(object[key]) // this logs the key value in the loop to the console
}
分解上面发生的事情:
key只是一个通用变量,表示循环中对象的键。这可以是任何您想要的:
for( someBullShit in object) {
console.log(someBullShit);
console.log(object[someBullShit]);
}
此循环的输出与前面的示例相同
在“for-in”循环中访问对象值
如上例所述,您可以访问“for in”循环中对象键的值,这与您通常访问的完全相同,只是您将使用“key变量”代替实际的键名
例如:
object[keyname] // this represents the value of a given key
var array = [1,2,3,4,5];
for(var i = 0; [condition]; [final-expression]) {
...
}
var array = [1,2,3,4,5];
for([initialization]; i < array.length ; [final-expression]) {
...
}
var array = [1,2,3,4,5];
for([initialization]; [condition]; i++) {
...
}
我还提供了以下额外信息,以防有人觉得有用:
对于带有数组的循环
循环的“标准”格式很简单:
对于([初始化];[条件];[最终表达式])
声明
简单来说:
初始化-设置一个起点(在Javascript中,出于计数目的,该起点的索引为0)
例如:
object[keyname] // this represents the value of a given key
var array = [1,2,3,4,5];
for(var i = 0; [condition]; [final-expression]) {
...
}
var array = [1,2,3,4,5];
for([initialization]; i < array.length ; [final-expression]) {
...
}
var array = [1,2,3,4,5];
for([initialization]; [condition]; i++) {
...
}
这意味着循环从0开始计数
条件-设置循环停止的时间。99.9%的时间,当循环成功循环每个项目一次时,您将告诉循环结束
例如:
object[keyname] // this represents the value of a given key
var array = [1,2,3,4,5];
for(var i = 0; [condition]; [final-expression]) {
...
}
var array = [1,2,3,4,5];
for([initialization]; i < array.length ; [final-expression]) {
...
}
var array = [1,2,3,4,5];
for([initialization]; [condition]; i++) {
...
}
这里的最后一个表达式值表示将这个变量的值增加1
Object.entries()方法返回给定对象自身的可枚举字符串键控属性[key,value]对数组,其顺序与for…in循环提供的顺序相同。(唯一重要的区别是for…in循环也枚举原型链中的属性)
Object.entries()方法返回给定对象自身可枚举字符串键控属性[key,value]对的数组,其顺序与for…in循环提供的顺序相同。(唯一重要的区别是for…in循环枚举