我想知道在JavaScript中是否有任何方法可以像这样遍历对象。
for(var i in myObject) {
// ...
}
但是像这样获取每个属性的名称。
for(var i in myObject) {
separateObj[myObject[i].name] = myObject[i];
}
我在谷歌上找不到类似的。他们说要传递变量的名称,但这不是我要实现的一个选项。
谢谢你能提供的任何帮助。
我想知道在JavaScript中是否有任何方法可以像这样遍历对象。
for(var i in myObject) {
// ...
}
但是像这样获取每个属性的名称。
for(var i in myObject) {
separateObj[myObject[i].name] = myObject[i];
}
我在谷歌上找不到类似的。他们说要传递变量的名称,但这不是我要实现的一个选项。
谢谢你能提供的任何帮助。
当前回答
从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"]
其他回答
当你先执行for/in循环时,i是属性名。所以你有了属性名i,并通过myObject[i]来访问这个值。
免责声明 我把这个问题误解为:“我能知道一个对象所附加的属性名吗?”,但选择留下答案,因为有些人在搜索时可能会在这里结束。
不,一个对象可以附加到多个属性,因此它无法知道自己的名称。
var obj = {a:1};
var a = {x: obj, y: obj}
obj的名字是什么?
您确定不只是想要for循环中的属性名吗?
for (var propName in obj) {
console.log("Iterating through prop with name", propName, " its value is ", obj[propName])
}
I是名字。
for(var name in obj) {
alert(name);
var value = obj[name];
alert(value);
}
你可以这样做:
seperateObj[i] = myObject[i];
从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"]
使用种():
var myObject = (a)“c”,(b)“a”,(c)“b”; var keyNames = Object.keys(myObject); 游戏机。log (keyNames);输出(“a”、“b”、“c”)
object. keys()提供了一个属于输入对象的属性名数组。