如何在javascript中获取对象值

时间:2017-03-14 06:15:33

标签: javascript

我有一个数组,它具有object的所有值属性。 像这样的东西。

var act=["name.first","age"];
var ab={name:{first:"roli",last:"agrawal"},age:24};
console.log(ab[act[0]]);

如何使用act值访问对象的值?

3 个答案:

答案 0 :(得分:2)

您必须拆分字符串act[0],因为您的对象不包含任何名为"name.first"的键:

var act=["name.first","age"];
var ab={name:{first:"roli",last:"agrawal"},age:24};
var key = act[0].split('.');
console.log(ab[key[0]][key[1]]);

答案 1 :(得分:0)

试试这个简单的

var ab = {first: 'a',
          last: 'b', 
          age: '24'}

var ac = [];
ac.push(ab);

console.log(ac[0]);   

答案 2 :(得分:0)

同意它本身不受支持,但您可以使用一点整流函数来迭代传递的路径并获取值。这可能是优化的,但有效:



var act=["name.first","age"];
var ab={name:{first:"roli",last:"agrawal"},age:24};

function getProperty(inputObj, path) {

  var pathArr = path.split('.');
  var currentObjLevelOrOutput;
  var i;
  
  if (pathArr.length > 1) {
    currentObjLevelOrOutput = inputObj;
    for (i=0; i < pathArr.length; i++) {
      currentObjLevelOrOutput = currentObjLevelOrOutput[pathArr[i]];
    }
  } else {
    currentObjLevelOrOutput = inputObj[path];
  }
  
  return currentObjLevelOrOutput;

}

console.log(getProperty(ab,act[0]));
&#13;
&#13;
&#13;