我想知道在JavaScript中是否有任何方法可以像这样遍历对象。

for(var i in myObject) {
    // ...
}

但是像这样获取每个属性的名称。

for(var i in myObject) {
    separateObj[myObject[i].name] = myObject[i];
}

我在谷歌上找不到类似的。他们说要传递变量的名称,但这不是我要实现的一个选项。

谢谢你能提供的任何帮助。


当前回答

使用种():

var myObject = (a)“c”,(b)“a”,(c)“b”; var keyNames = Object.keys(myObject); 游戏机。log (keyNames);输出(“a”、“b”、“c”)

object. keys()提供了一个属于输入对象的属性名数组。

其他回答

I是名字。

for(var name in obj) {
    alert(name);
    var value = obj[name];
    alert(value);
}

你可以这样做:

seperateObj[i] = myObject[i];

使用种():

var myObject = (a)“c”,(b)“a”,(c)“b”; var keyNames = Object.keys(myObject); 游戏机。log (keyNames);输出(“a”、“b”、“c”)

object. keys()提供了一个属于输入对象的属性名数组。

这些解决方案也很有效。

// Solution One
function removeProperty(obj, prop) {
  var bool;
  var keys = Object.keys(obj);
  for (var i = 0; i < keys.length; i++) {
    if (keys[i] === prop) {
      delete obj[prop];
      bool = true;
    } 
  }
  return Boolean(bool);
}


//Solution two
function removeProperty(obj, prop) {
  var bool;
  if (obj.hasOwnProperty(prop)) {
      bool = true;
      delete obj[prop];
  }
  return Boolean(bool);
}

从2018年开始,您可以使用Developer Mozilla Documentation中描述的Object.getOwnPropertyNames()

const object1 = {
  a: 1,
  b: 2,
  c: 3
};

console.log(Object.getOwnPropertyNames(object1));
// expected output: Array ["a", "b", "c"]

除了“对象”。Keys (obj)",我们有very simple "for…循环-在对象的可枚举属性名上循环。

const obj = {"fName":"John","lName":"Doe"}; 对于(obj中的const键){ //这将给出key console.log(关键); //这将给出值 console.log (obj(例子)); }