当前位置: 首页 > 面试题库 >

如何在JavaScript中按属性查找数组中的对象?

韦宏扬
2023-03-14
问题内容

存在一个包含许多对象的数组。通过属性在此数组中查找一个或多个对象所必需。

输入obj:

  var Obj = [
    {"start": 0, "length": 3, "style": "text"},
    {"start": 4, "length": 2, "style": "operator"},
    {"start": 4, "length": 3, "style": "error"}
  ];

输出结果:(以值4搜索“开始”)

  var result = [
    {"start": 4, "length": 2, "style": "operator"},
    {"start": 4, "length": 3, "style": "error"}
  ];

问题答案:

_findItemByValue(Obj,“开始”,4);

var _findItemByValue = function(obj, prop, value) {
  return obj.filter(function(item) {
    return (item[prop] === value);
  });
}

与除IE6,IE7,IE8以外的所有版本兼容,但存在polyfill。

if (!Array.prototype.filter) {
  Array.prototype.filter = function (fn, context) {
    var i,
        value,
        result = [],
        length;

        if (!this || typeof fn !== 'function' || (fn instanceof RegExp)) {
          throw new TypeError();
        }

        length = this.length;

        for (i = 0; i < length; i++) {
          if (this.hasOwnProperty(i)) {
            value = this[i];
            if (fn.call(context, value, i, this)) {
              result.push(value);
            }
          }
        }
    return result;
  };
}


 类似资料:
  • 我怎么能找到一个对象,,在

  • 问题内容: 如何转换为: 到这个: 使用javascript或下划线 问题答案: 假设原始列表包含在名为的变量中:

  • 问题内容: 我有一个数组: 我无法更改数组的结构。我正在传递ID为,我想获取数组中的该对象。 如何在JavaScript或jQuery中做到这一点? 问题答案: 使用方法: 从MDN: 如果数组中的元素满足提供的测试功能,则该方法返回数组中的第一个值。否则返回。 如果要查找其 索引 ,请使用: 从MDN: 该方法返回满足提供的测试功能的数组中第一个元素的索引。否则返回-1。 如果要获取匹配元素的数

  • 问题内容: 是否有可能从具有特定属性的数组中获取对象?还是我需要遍历数组中的所有对象并检查属性是否是我正在寻找的特定对象? 编辑:谢谢你给我正确的方向,但我有一个转换此问题。 //再编辑一次:好的,如果只有一个特定的结果?这也是可行的方法吗? 问题答案: //这不起作用-NSArray不是Images的子类型-那么如果只有1种可能的结果怎么办? 您无法在编译时证明数组上只有一个可能的结果。您实际要

  • 问题内容: 该数组如下所示: 我有一个名为的整数变量。 如何选择具有对象的数组条目,其中的属性具有值? 问题答案: 您可以迭代数组,搜索特定记录(一次只能搜索一次),也可以使用另一个关联数组来构建哈希图。 对于前者,像这样

  • 问题内容: 我正在寻找一种非常快速,干净且有效的方法来获取以下JSON切片中的最大“ y”值: for-loop是解决此问题的唯一方法吗?我热衷于使用。 问题答案: 要在中找到对象的最大值: