【问题标题】:How to find the index of an object in an array by checking property value in JavaScript?如何通过检查 JavaScript 中的属性值来查找数组中对象的索引?
【发布时间】:2016-08-16 10:52:26
【问题描述】:

我有一个类似的数组:

$scope.myArray = [{
  columnName: "processed1",
  dataType: "char"
}, {
  columnName: "processed2",
  dataType: "char"
}, {
  columnName: "processed3",
  dataType: "char"
}];

我想找到objectindex 哪个属性值满足"processed2"

我该怎么做?我尝试使用 array.indexOf() 方法,但我得到了 response -1

【问题讨论】:

    标签: javascript angularjs arrays


    【解决方案1】:

    使用Array#findIndex如果数组中的元素满足提供的测试功能,findIndex() 方法会返回数组中的索引。否则返回 -1。

    Array#indexOf 将失败,因为array 包含objectsindexOf() 使用triple-equals operator 测试元素,如果object 引用相同的memory-location,则object 等于object

    var myArray = [{
      columnName: "processed1",
      dataType: "char"
    }, {
      columnName: "processed2",
      dataType: "char"
    }, {
      columnName: "processed3",
      dataType: "char"
    }];
    var index = myArray.findIndex(function(el) {
      return el.columnName == 'processed2';
    });
    console.log(index);

    【讨论】:

      【解决方案2】:

      您可以使用简单的 for 循环。

      for(var i=0;i < $scope.myArray.length; i++)
      {
        if($scope.myArray[i].columnName == 'processed2') {
          // Do something with found item
          break;
        }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-08
        • 2011-07-31
        • 1970-01-01
        • 1970-01-01
        • 2016-07-26
        • 2022-01-04
        • 1970-01-01
        相关资源
        最近更新 更多