在Javascript中迭代变量 [英] Iterating over variables in Javascript

查看:103
本文介绍了在Javascript中迭代变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的第2块的目标是通过在for循环中定义javascript变量来简化我现有的块1代码。下面的代码给了我错误Unexpected token [在控制台中。我不知道我在这里使用正确的语法。有没有办法循环一个数组,并动态插入每一个得到期望的结果块1?

我能console.log details_object [i]块2,并成功地看到所有的数组元素,但是就我所能得到的。

  / * Block 1 * / 

/ * var title = document.getElementById('title')。value;
var phone = document.getElementById('phone')。value;
var firstn = document.getElementById('firstn')。value;
var lastn = document.getElementById('lastn')。value;
var displayn = document.getElementById('displayn')。value; * /

/ * Block 2 less code!* /

var details_object = [ title,phone,firstn,lastn,displayn]; (var i = 0,l = details_object.length; i< l; i ++){
var details_object [i] = document.getElementById('+ details_object [i 。] + ')值;


解决方案

  var details_object [i] = document.getElementById('+ details_object [i] +')。value; 
^ --- //删除这个变量

这就是导致错误的原因。你可能想要这样的东西:

  var details_object = [title,phone,firstn,lastn ,displayn]; 
var obj = {}; (var i = 0,l = details_object.length; i< l; i ++){
obj [details_object [i]] = document.getElementById(details_object [i])的

。值;



$ b现在访问 obj.title obj.phone 等。


My goal with block 2 is to streamline my existing block 1 code by defining javascript variables in a for loop.The code below is giving me the error "Unexpected token [" in the console. I am not sure I am using the proper syntax here. Is there a way to loop over an array and insert each dynamically to get the desired result of block 1?

I am able to console.log details_object[i] in block 2 and successfully see all the array elements but that is about as far as I can get.

   /*Block 1*/

   /*var title = document.getElementById('title').value;
   var phone = document.getElementById('phone').value;
   var firstn = document.getElementById('firstn').value;
   var lastn = document.getElementById('lastn').value;
   var displayn = document.getElementById('displayn').value;*/

   /*Block 2 less code!*/

   var details_object = ["title", "phone", "firstn", "lastn", "displayn"];

   for(var i=0, l = details_object.length; i < l; i++){
     var details_object[i] = document.getElementById("'"+details_object[i]+"'").value;
   }

解决方案

var details_object[i] = document.getElementById("'"+details_object[i]+"'").value;
 ^---// Delete this var

That is what was causing the error. You probably want something like this:

var details_object = ["title", "phone", "firstn", "lastn", "displayn"];
var obj = {};

for(var i=0, l = details_object.length; i < l; i++){
  obj[details_object[i]] = document.getElementById(details_object[i]).value;
}

Now access obj.title, obj.phone, etc.

这篇关于在Javascript中迭代变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆