JavaScript:获取对象属性的值

时间:2018-06-29 09:38:36

标签: javascript javascript-objects

我试图获取对象的所有属性的值,并且尝试使用Object.values(),而我在控制台中仅使用此方法:

var a = queryPlan.combo.getFilterMapOfIdToWgt();         console.log(Object.values(a));

[constructor]

但是它实际上包含很多值:

[constructor]
0:constructor
activeErrorsTpl:(8) ["<tpl if="errors && errors.length">", "<ul class="{listCls}">", "<tpl if="Ext.enableAria">", "<tpl if="fieldLabel"><div>{fieldLabel}</div></tpl>", "</tpl>", "<tpl for="errors"><li>{.}</li></tpl>", "</ul>", "</tpl>"]
activeUI:"default"
autoGenId:true
auxStore:constructor {removed: Array(0), blockLoadCounter: 0, isInitializing: false, initConfig: ƒ, initialConfig: {…}, …}
bindings:[]
bodyEl:constructor {dom: div#hemonth-1050-bodyEl.x-form-item-body.x-form-item-body-default.x-form-text-field-body.x-form-text…, id: "hemonth-1050-bodyEl", el: constructor, initConfig: ƒ, initialConfig: {…}, …}

我正在尝试访问每个值。有可能得到它,如果是,我如何得到它? 非常感谢您的帮助并提前致谢。

2 个答案:

答案 0 :(得分:1)

ES6 +

如果您使用ES6 +,则可以使用for..of循环:

var myArray = [ 1, 2, 3 ];

for (var v of myArray) {
   console.log( v );
}
// 1
// 2
// 3

for..of循环直接在对象的属性值上进行迭代。

PRE-ES6

对于ES6之前的版本,您可以使用标准的for循环:

var myArray = [1, 2, 3];

for (var i = 0; i < myArray.length; i++) {
    console.log( myArray[i] );
}
// 1 2 3

答案 1 :(得分:0)

let obj = {
  key1: 'val1',
  print: (x) => { console.log(x)}
}

for(var attr in obj){
  
	if(typeof obj[attr] == 'function'){
  	obj[attr]('123');
  }
  
  if(typeof obj[attr] == 'string'){
  	console.log('hi attr is:',attr, 'with value:',obj[attr])
  }
}

在没有共享对象的情况下,这里我将创建示例对象以及如何遍历属性并使用它们。如果您希望对问题有更具体的答案,请将其包含在您的问题中