以下是array of objects,我希望获得与密钥相对应的值,例如"ERROR"
,例如密钥status
。此状态可能出现在对象数组的任何索引处。如何过滤整个数组并获取键和值。
我有response
对象,它提供动态数组对象,我可以使用Object.values(response)[0].responseStatus.status
从中获取
对于某些情况Object.values(response)[0].status
。如何使用jquery以编程方式使用。
答案 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;
}
为我工作。