在数组的javascript循环中使用对象名称

Cid2196

我想遍历对象数组,检查对象变量的名称是否等于传递给函数的元素的ID,如果是,则将另一个对象的innerHTML设置为匹配对象的name属性例如

var samplearray = new Array();
var Guy1 = new Object();
Guy1.name = "Bill";
Guy1.health = 100;
samplearray.push(Guy1);
Guy2.name = "Dan";
Guy2.health = 125;
samplearray.push(Guy2);
//this is all done previously by a function on pageload

function afunction(id){
for (item in samplearray)
{
    if (item == id.id){
    document.getElementById("changeme").innerHTML=samplearray[item].name;
    }
}}

if中的“ item”似乎没有引用变量的名称。如果我使用自定义的var_dump函数进行检查,它会告诉我该值为“ 11”而不是“ Guy1”。我不知道为什么。

编辑:

固定的for循环:

for (var item in samplearray)
{
    if (samplearray[item].varname == id.id){
    document.getElementById("changeme").innerHTML=samplearray[item].name';
}}
罗布

我不太了解您在做什么,但是这里有一些关于您代码的注释:

> var samplearray = new Array();
> var Guy1 = new Object();
> Guy1.name = "Bill"; 
> Guy1.health = 100;
> samplearray.push(Guy1);
> Guy2.name = "Dan";
> Guy2.health = 125;
> samplearray.push(Guy2); 

使用对象和数组初始化程序*被认为是更好的样式(并且更简洁)

var guy1 = {name: "Bill", health: 100};
var guy2 = {name: "Dan", health: 125};
var samplearray = [guy1, guy2]

同样,按照惯例,以大写字母开头的变量名称保留给构造函数使用。

> //this is all done previously by a function on pageload

与元素进行交互之前,您需要等待元素可用,等待load事件是这样做的一种方法。

> function afunction(id) {

什么是ID稍后您似乎将其视为对象。

嗯,所以id是对元素的引用,id.id应该返回元素id。

>   for (item in samplearray) {

您应该声明变量,以便它们不会成为全局变量,因此:

    for (var item in samplearray) {

在数组中使用..in通常不是一个好主意,因为返回成员的顺序可能与它们的索引顺序不同。此外,它将返回所有可枚举的属性,包括原型链上的那些属性,因此,如果不是您想要的属性,则应避免该情况。使用for循环更好,因此您可以保证顺序并避免使用非数字可枚举属性:

  var item;
  for (var i=0, iLen=samplearray.length; i<iLen; i++) {
    item = samplearray[i];

>     if (item == id.id){

因此item将是对samplearray的Object成员的引用,并且id.id是一个字符串,因此它将始终返回false,以下代码均不会运行。

>       document.getElementById("changeme").innerHTML=item.name;

for..in版本中,item是字符串属性名称,但是您将其视为对象,因此将引发错误并且脚本执行将停止。

在for循环版本中,它是对samplearray中的一个对象的引用,因此上述内容应该“起作用”。

>     document.getElementById("changeme").innerHTML=samplearray[item].name;

如果item是数字属性名称而不是其他一些可枚举属性,则该方法应该可以使用

>     //neither does this
>     } }}

*初始化器是创建对象(例如对象,数组,正则表达式等)的表达式的通用术语。如果初始化程序使用文字值,则可以将其称为“文字”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在对象名称作为变量传递的循环中使用saveRDS-R

来自分类Dev

如何在数组的forEach循环中使用Promise填充对象

来自分类Dev

用循环中的字符替换对象名称

来自分类Dev

数组循环中的Javascript对象

来自分类Dev

在循环中创建多个具有不同名称的对象以存储在数组列表中

来自分类Dev

如何在 JavaScript 中使用对象名称的字符串将对象作为参数传递?

来自分类Dev

如何创建在FOR循环中使用的图像对象数组?

来自分类Dev

for循环对象名称迭代

来自分类Dev

javascript:如何在for循环中使用javascript数组

来自分类Dev

在数组中使用和对象分配JavaScript对象

来自分类Dev

在 JavaScript 中使用 for 循环创建对象数组

来自分类Dev

在 forEach JavaScript 循环中使用基础对象

来自分类Dev

在javascript中使用for循环在数组中搜索值

来自分类Dev

C# 使用循环遍历对象名称

来自分类Dev

如何在循环中使用scanf使用C中的指针在数组中保存字符

来自分类Dev

在Delphi中使用变量作为对象名称

来自分类Dev

SQL Server中使用的函数的无效对象名称错误

来自分类Dev

javascript对象名称属性

来自分类Dev

在数组中查找最大数目并返回对象名称

来自分类Dev

在bash中使用数组在每个循环中更改已创建文件夹的名称

来自分类Dev

为什么在对象的方法中使用对象名称而不是此名称?

来自分类Dev

在数组中使用对象的属性

来自分类Dev

在数组中使用随机对象

来自分类Dev

提取对象属性以在数组中使用

来自分类Dev

从数组中获取对象名称

来自分类Dev

在数组中的名称中使用#和空格访问对象变量

来自分类Dev

如何在python中使用字符串作为数组的名称,以便可以在for循环中使用

来自分类Dev

使用动态对象名称访问对象

来自分类Dev

JavaScript函数无法在for循环中使用

Related 相关文章

  1. 1

    如何在对象名称作为变量传递的循环中使用saveRDS-R

  2. 2

    如何在数组的forEach循环中使用Promise填充对象

  3. 3

    用循环中的字符替换对象名称

  4. 4

    数组循环中的Javascript对象

  5. 5

    在循环中创建多个具有不同名称的对象以存储在数组列表中

  6. 6

    如何在 JavaScript 中使用对象名称的字符串将对象作为参数传递?

  7. 7

    如何创建在FOR循环中使用的图像对象数组?

  8. 8

    for循环对象名称迭代

  9. 9

    javascript:如何在for循环中使用javascript数组

  10. 10

    在数组中使用和对象分配JavaScript对象

  11. 11

    在 JavaScript 中使用 for 循环创建对象数组

  12. 12

    在 forEach JavaScript 循环中使用基础对象

  13. 13

    在javascript中使用for循环在数组中搜索值

  14. 14

    C# 使用循环遍历对象名称

  15. 15

    如何在循环中使用scanf使用C中的指针在数组中保存字符

  16. 16

    在Delphi中使用变量作为对象名称

  17. 17

    SQL Server中使用的函数的无效对象名称错误

  18. 18

    javascript对象名称属性

  19. 19

    在数组中查找最大数目并返回对象名称

  20. 20

    在bash中使用数组在每个循环中更改已创建文件夹的名称

  21. 21

    为什么在对象的方法中使用对象名称而不是此名称?

  22. 22

    在数组中使用对象的属性

  23. 23

    在数组中使用随机对象

  24. 24

    提取对象属性以在数组中使用

  25. 25

    从数组中获取对象名称

  26. 26

    在数组中的名称中使用#和空格访问对象变量

  27. 27

    如何在python中使用字符串作为数组的名称,以便可以在for循环中使用

  28. 28

    使用动态对象名称访问对象

  29. 29

    JavaScript函数无法在for循环中使用

热门标签

归档