How do I access properties of a javascript object if I don't know the names?

前端 未结 8 1403
囚心锁ツ
囚心锁ツ 2020-11-28 18:49

Say you have a javascript object like this:

var data = { foo: \'bar\', baz: \'quux\' };

You can access the properties by the property name:

8条回答
  •  南方客
    南方客 (楼主)
    2020-11-28 19:21

    function getDetailedObject(inputObject) {
        var detailedObject = {}, properties;
    
        do {
            properties = Object.getOwnPropertyNames( inputObject );
            for (var o in properties) {
                detailedObject[properties[o]] = inputObject[properties[o]];
            }
        } while ( inputObject = Object.getPrototypeOf( inputObject ) );
    
        return detailedObject;
    }
    

    This will get all properties and their values (inherited or own, enumerable or not) in a new object. original object is untouched. Now new object can be traversed using

    var obj = { 'b': '4' }; //example object
    var detailedObject = getDetailedObject(obj);
    for(var o in detailedObject) {
        console.log('key: ' + o + '   value: ' + detailedObject[o]);
    }
    

提交回复
热议问题