在javascript中,如何创建一个遍历所有对象的for循环?

时间:2016-08-14 15:46:33

标签: javascript variables object

我想根据一些要求检查某个按钮是否可点击,但我甚至无法启动该功能。

我有这个对象数组。每个对象都是一个按钮,其中一些是有要求的。例如:要使故事可点击,需要10个想法,所以story.ideaReq = 10。要获得格拉纳,你需要有一个故事,所以grana.storyReq = 1

我的代码应该返回:

story ideaReq 10

即:

  

story.name = story,
   req.name +'所需物品' = ideaReq和
    故事[' ideaReq'] = 10

但它返回:

story ideaReq undefined

如果我console.log(story.ideaReq)它完美无缺,但我需要能够调用此函数(因为我将结束具有比上述更多的对象)。

我错过了什么?



const numbers = [
  time = {
    'name': 'time',
    'in': 0,
    'val': 0
  },
  idea = {
    'name': 'idea',
    'in': 0,
    'val': 10,
    'time': 1
  },
  story = {
    'name': 'story',
    'in': 0,
    'val': 1,
    'time': 4,
    'ideaReq': 10
  },
  grana = {
    'name': 'grana',
    'in': 0,
    'val': 1,
    'time': 1,
    'storyReq': 1
  }
];


var checkButton = (button, req) => {

  let name = button.name,
    prop = req.name + 'Req';

  console.log(name, prop, name['prop']);
}

checkButton(story, idea);




1 个答案:

答案 0 :(得分:0)

您的代码正在尝试访问<form id="add_quote_form" name="add_quote_form" class="form-horizontal"> <table style="width: 90%" id="myTable" class="centered-table table table-bordered"> <thead> <tr> <th>Item</th> </tr> </thead> <tbody> <tr> <td style="width: 60%"><input type="text" id="detail[]" name="detail[]"/></td> </tr> </tbody> </table> </form> 的属性prop。相反,您应该使用name存储的字符串访问button的属性。

更改

prop

console.log(name, prop, name['prop']);

console.log(name, prop, button[prop]);

另外,如果你没有声明你的变量,它们将是全局变量,所以在你的数组初始化程序之前,你应该添加:

const numbers = [
  time = {
    'name': 'time',
    'in': 0,
    'val': 0
  },
  idea = {
    'name': 'idea',
    'in': 0,
    'val': 10,
    'time': 1
  },
  story = {
    'name': 'story',
    'in': 0,
    'val': 1,
    'time': 4,
    'ideaReq': 10
  },
  grana = {
    'name': 'grana',
    'in': 0,
    'val': 1,
    'time': 1,
    'storyReq': 1
  }
];


var checkButton = (button, req) => {

  let name = button.name,
    prop = req.name + 'Req';

  console.log(name, prop, button[prop]);
}

checkButton(story, idea);