我试图遍历一个对象并找到一个特定的匹配。当我找到匹配项时,我想拉出对象中的其他键值对。所以,如果我有一个这种形式的对象:
[{"ID":"3","NAME":"John","Age":"15"},{"ID":"4","NAME":"Mike","Age":"10"},{"ID":"5","NAME":"Tim","Age":"18"},{"ID":"6","NAME":"Ken","Age":"20"}]
我有一个搜索/匹配值
var MatchValue = 4;
如何遍历我的对象以找到" ID"等于4并显示" NAME"和"年龄"从对象?任何有关这方面的帮助将不胜感激。提前致谢。 #JsonNoob。
答案 0 :(得分:0)
您要做的是过滤您的阵列。您可以使用JavaScript的filter
函数执行此操作。此代码将为您提供ID等于4的元素。
然后,您可以使用点或括号表示法访问此对象的属性。
var myObject = array.filter(function(element) {
return element.ID === '4';
}
console.log(myObject.name); // Prints name to console
console.log(myObject.age); // Prints age to console
如果你有石器时代的浏览器,你可以这样做
if (!Array.prototype.filter) {
Array.prototype.filter = function(fun /*, thisp*/) {
var len = this.length >>> 0;
if (typeof fun != "function")
throw new TypeError();
var res = [];
var thisp = arguments[1];
for (var i = 0; i < len; i++) {
if (i in this) {
var val = this[i]; // in case fun mutates this
if (fun.call(thisp, val, i, this))
res.push(val);
}
}
return res;
};
}
我从另一个Stack Overflow回答得到了这个,但我可以解释一下。
检查您的浏览器是否具有Array.prototype.filter
功能。某些旧版本的IE没有它,因此您可以手动定义该功能。