遍历javascript对象以查找匹配项

Iterate through javascript object to find a match

本文关键字:查找 javascript 对象 遍历      更新时间:2023-09-26

我正试图循环遍历一个对象并找到一个特定的匹配项。当我找到匹配项时,我想拉取对象中的其他键值对。因此,如果我有一个这样的对象:

[{"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;

我如何遍历我的对象以找到等于4的"ID",并显示对象中的"NAME"answers"AGE"?如有任何帮助,我们将不胜感激。提前谢谢#JsonNoob。

您想要做的是过滤您的数组。您可以使用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没有它,所以你可以手动定义函数。