Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中通过属性查找数组中的对象?_Javascript_Arrays - Fatal编程技术网

如何在javascript中通过属性查找数组中的对象?

如何在javascript中通过属性查找数组中的对象?,javascript,arrays,Javascript,Arrays,存在一个包含许多对象的数组。按属性查找此数组中的一个或多个对象是必需的 输入对象: var Obj = [ {"start": 0, "length": 3, "style": "text"}, {"start": 4, "length": 2, "style": "operator"}, {"start": 4, "length": 3, "style": "error"} ]; 输出结果:(搜索值为4的“开始”) _findItemByValue(Obj,“

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

输入对象:

  var Obj = [
    {"start": 0, "length": 3, "style": "text"},
    {"start": 4, "length": 2, "style": "operator"},
    {"start": 4, "length": 3, "style": "error"}
  ];
输出结果:(搜索值为4的“开始”)

_findItemByValue(Obj,“开始”,4)

与除IE6、IE7、IE8之外的所有设备兼容,但存在

if(!Array.prototype.filter){
Array.prototype.filter=函数(fn,上下文){
var i,
价值
结果=[],
长度;
如果(!this | | typeof fn!=“function”| |(fn instanceof RegExp)){
抛出新的TypeError();
}
长度=此长度;
对于(i=0;i
使用数组函数

var Obj=[
{“开始”:0,“长度”:3,“样式”:“文本”},
{“开始”:4,“长度”:2,“样式”:“运算符”},
{“开始”:4,“长度”:3,“样式”:“错误”}
];
var result=Obj.filter(x=>x.start==4);

控制台日志(结果)不到一分钟即可解决您自己的问题!太棒了。(别喝了,沃德,你看双重…)沃德怎么了?这只是问答风格中的一个小技巧。问题是这是一个常见且相当琐碎的问题。你确认没有重复的吗?@BlueSkies我找到了重复的,但是上面的解决方案很糟糕。
  var result = [
    {"start": 4, "length": 2, "style": "operator"},
    {"start": 4, "length": 3, "style": "error"}
  ];
var _findItemByValue = function(obj, prop, value) {
  return obj.filter(function(item) {
    return (item[prop] === value);
  });
}
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;
  };
}