【问题标题】:JS: encapsulated foreach loop with arrays for JSONJS:用 JSON 数组封装的 foreach 循环
【发布时间】:2015-11-22 00:15:47
【问题描述】:

我试图在第二个循环中获得一个 foreach 循环。 我的代码:

var results = data.d.results;
var boxes= [
   "Nmb1",
   "Nmb2",
   "Nmb3",
   "Nmb4",
   "Nmb5",
   ];

boxes.forEach(function(n){

  var boxesEach = results[0].n.results;                    

  boxesEach.forEach(function(i){
     $("input[value="+'"'+i+'"'+"]").attr('checked', true);
  });
});

我想要做的是让例如“Nmb1”替换“n”,这将产生以下“输出代码”:

var boxesEach = results[0].Nmb1.results;

如果我只放这样的代码而不是循环,它就可以工作。

感谢您的帮助和提示。

顺便说一句:我通过 AJAX 从 Sharepoint 2013 服务器(使用 REST API)获取 JSON。

【问题讨论】:

  • 顺便说一句,您可能想使用results[0][n].results 而不是results[0].n.results;。
  • 抱歉没有演示,因为它是关键数据。该解决方案解决了,谢谢。

标签: javascript arrays json loops foreach


【解决方案1】:

您需要像使用索引一样使用它。这称为括号表示法 (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors#Bracket_notation)

var boxesEach = results[0][n].results;

您现在拥有的那个尝试使用点表示法,您需要实际的属性名称(即 Nmb1)而不是保存属性名称的变量。

【讨论】:

  • Uncaught SyntaxError: Unexpected identifier 有什么想法吗?
  • 对不起!我的错。我刚刚意识到我错过了一个。
  • 我自己想通了,不过非常感谢您的快速解决方案!
猜你喜欢
  • 2013-08-20
  • 1970-01-01
  • 1970-01-01
  • 2018-06-10
  • 1970-01-01
  • 2013-08-19
  • 2018-01-04
  • 1970-01-01
  • 2019-10-01
相关资源
最近更新 更多