我想知道在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];
}
我在谷歌上找不到类似的。他们说要传递变量的名称,但这不是我要实现的一个选项。
谢谢你能提供的任何帮助。
当前回答
使用种():
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];
除了“对象”。Keys (obj)",我们有very simple "for…循环-在对象的可枚举属性名上循环。
const obj = {"fName":"John","lName":"Doe"}; 对于(obj中的const键){ //这将给出key console.log(关键); //这将给出值 console.log (obj(例子)); }
使用Object.keys()函数从Object中获取属性,它可以帮助通过名称搜索属性,例如:
const Products = function(){
this.Product = "Product A";
this.Price = 9.99;
this.Quantity = 112;
};
// Simple find function case insensitive
let findPropByName = function(data, propertyName){
let props = [];
Object.keys(data).forEach(element => {
return props.push(element.toLowerCase());
});
console.log(props);
let i = props.indexOf(propertyName.toLowerCase());
if(i > -1){
return props[i];
}
return false;
};
// calling the function
let products = new Products();
console.log(findPropByName(products, 'quantity'));
从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 ={答:“苹果”,乙:“球”,c:‘猫’,d:“娃娃”,e:‘大象’};
Object.keys(a).forEach(key => {
console.log(key) // returns the keys in an object
console.log(a[key]) // returns the appropriate value
})