JavaScript如何获取变量(类型对象)的属性名?

时间:2018-09-06 13:54:28

标签: javascript arrays json web

我具有一些属性的变量:

var fullName = { FirstName:'Josef',SecondName:'Luis', LastName:'Pumpkin'}

我正在获取此变量的值,并将其放入Table中,如下所示:

for(var i in fullName){
  if(fullName.hasOwnProperty(i)){
   var newCell = newRow.insertCell(0);
   newCell.innerHTML = fullName[i];
  }
}

输出结果是:约瑟夫·路易斯南瓜。问题是我也该如何添加其属性名称,以得到如下输出: FirstName -Josef, SecondName -Luis, LastName -南瓜(在他们的单元格中)?

2 个答案:

答案 0 :(得分:3)

  

我有一些参数变量

该变量引用具有 properties (不是参数)的对象

您在循环中拥有属性的名称(如i)。只需使用字符串串联:

newCell.innerHTML = i + " - " + fullName[i];

或者在现代(ES2015 +)环境中,您可以使用https://github.com/felixfbecker/vscode-php-debug#remote-host-debugging

newCell.innerHTML = `${i} - ${fullName[i]}`;

请注意,for-in访问属性的顺序为template literal,即使在ES2015 +中也是如此。即使指定for-in来支持ES2015确实添加到属性的顺序,该顺序也会根据对象的创建方式而变化。因此,请注意,您正在创建的单元格可能不会始终保持相同的顺序。

答案 1 :(得分:1)

 i + " - " + fullName[i]

它只是一些字符串连接,您已经在i变量中获得了键。我怎么写:

 Object.entries(fullName)
   .map(pair => pair.join(" - "))
   .forEach(entry => newRow.insertCell(0).innerHTML = entry)