关于如何使用数组存储其他变量名称的任何想法

Any ideas of how to use array to store the name of other variables?

本文关键字:变量名 任何想 其他 存储 于如何 数组      更新时间:2023-09-26

我刚刚完成JavaScrip代码的编写,我想知道我们是否可以使用数组来存储变量名并利用它。

假设这是我的AJAX响应文本

[{"NumOfColumn" : "11"},{"t_id" : "TSK_000001","t_name" : "Reviewing project's user"}]

正如您所看到的,这个数组由两个具有不同变量名的对象组成。

这就是我通常处理接收到的数据集的方式。

var arr = JSON.parse(this.data);
  for(i = 1; i < rows ; i++)
    {
        out += "<tr><td>"+
                arr[i].t_id +
                "</td><td>" +
                arr[i].t_name+
        out += "</td></tr>";
    }
table.childNodes[5].innerHTML = out;

我们如何制作数组或列表来存储变量的名称(t_id,i_name(,有什么想法吗,返回它们,然后自动与arr[i]变量连接。因此我们不需要像arr[i].t_id , arr[i].t_name,... 那样编写

对该问题的更多解释

假设您得到类似的AJAX响应

[{"a" : "Hello,"b" : "World"}] 

另一个像

[{"c": "cat", "d": "meow"}] . 

传统上,如果我想从其中一个对象中获取数据,我必须像一样编写代码

arr[i].a + arr[i].b 

以获取第一个对象的数据。则对于第二对象

arr[i].c + arr[i].d

我的问题是,在我们处理以获取数据之前,我们如何GET存储每个对象的变量名,有什么想法吗?

如果有解决方案,那么,您就不需要再编写这样的代码了。

这将是

arr[i].(something that stores a,b and c,d or other varies from different objects ).

我真的很难解释这个想法。请留下一些评论

谢谢。

var namesArray = [];
for(var i = 0; i< test.length; i++){
    for(var me in test[i]){
        namesArray.push(me);
     }
}

假设该测试是您的响应数组。

您的问题不是很清楚。但是,如果您正在寻找一种方法来创建一个数组,该数组应该包含对象的所有属性的名称,那么您可以按照如下所示进行操作。

var obj = { 
  t_id: "TSK_000001" ,
  t_name: "Reviewing project's user"
};
var arrayOfPropertyNames = [];
for(var propertyName in obj){
  arrayOfPropertyNames.push(propertyName);
}
console.log(arrayOfPropertyNames);

要从对象中获取键,可以使用object.keys函数
该函数返回键的数组,因此您可以使用带有括号符号的jey

所以,代码应该类似于这个

var arr = JSON.parse(this.data);
for(i = 1; i < rows ; i++)
{
    var o = arr[i];
    out += "<tr>" + Object.keys(o).map(function(key){
      return "<td>" + o[key] + "</td>";
    }).join('') + "</tr>";
}

甚至

out += JSON.parse(this.data).slice(1).map(function(o){
    return "<tr>" + Object.keys(o).map(function(key){
      return "<td>" + o[key] + "</td>";
    }).join('') + "</tr>";
}).join('');