获取与对象数组内的键对应的值

时间:2017-09-12 17:15:54

标签: javascript jquery

以下是array of objects,我希望获得与密钥相对应的值,例如"ERROR",例如密钥status。此状态可能出现在对象数组的任何索引处。如何过滤整个数组并获取键和值。

我有response对象,它提供动态数组对象,我可以使用Object.values(response)[0].responseStatus.status从中获取 对于某些情况Object.values(response)[0].status。如何使用jquery以编程方式使用。

4 个答案:

答案 0 :(得分:0)

如果我理解你的问题,你想迭代对象中的键并输出它们的值。你正在寻找这样的东西:

var keyOutputter = function(obj){
    var keys = Object.keys(obj)
    for(var i = 0; i < keys.length; i++){
       var key = keys[i]
       console.log(key + ":" obj[key])
    }
}

答案 1 :(得分:0)

您可以从中获取任何想法

$.each(responseStatus, function(index,value){
  if(value.status == "ERROR"){
    var valueIndex = index;
  }
});

答案 2 :(得分:0)

如果我理解正确,您希望在响应对象中找到某个属性的值。使用纯JavaScript我会做这样的事情:

//our data object
var responseStatus = {
  status: "ERROR",
  description: "createUserPassword invalid input",
  errorData: ['first error desc', 'the second error desc.']
};

//used to get the value of specific property an object
function getObjectProperty(desiredPropertyKey, dataObject) {
  for (prop in dataObject) {
    if (dataObject.hasOwnProperty(prop)) {
      if (prop === desiredPropertyKey) {
        return dataObject[prop];
      }
    }
  }
}

//use function defined above to get the 'status' value in our response obj
function getResponseStatus() {
  return getObjectProperty('status', responseStatus);
}

function getResponseDescription() {
  return getObjectProperty('description', responseStatus);
}

console.log(getResponseStatus());
console.log(getResponseDescription());

答案 3 :(得分:0)

function findValueByKey(obj, key, out) {
var i, proto = Object.prototype,ts = proto.toString,
hasOwn = proto.hasOwnProperty.bind(obj);
if ('[object Array]' !== ts.call(out)) out = [];
for (i in obj) {
    if (hasOwn(i)) {
        if (i === key) {
            out.push(obj[i]);
        } else if ('[object Array]' === ts.call(obj[i]) || 
                '[object Object]' === ts.call(obj[i])) {
            findValueByKey(obj[i], key, out);
        }
    }
  }
 return out;
}

为我工作。