在对象数组中查找属性值(Javascript)

在对象数组中查找属性值(Javascript),javascript,arrays,loops,object,iteration,Javascript,Arrays,Loops,Object,Iteration,下面是一组对象。我想检查objArray中存在的错误代码值 var objArr = [ { "7364234": "hsjd", "errorCode": "400" }, { "12345": "jd", "errorCode": "500-001" } ] 下面是一个解决方案,用于查找键errorC

下面是一组对象。我想检查
objArray
中存在的错误代码值

var objArr = [
  {
  "7364234": "hsjd",
  "errorCode": "400"
  },
  {
  "12345": "jd",
  "errorCode": "500-001"
  }
]
下面是一个解决方案,用于查找键
errorCode
是否存在于对象数组中。如果我执行如下所示的console.log,就会得到所需的结果

const contains = (string) =>
  objArr.findIndex(
    // Is the string contained in the object keys?
    obj => Object.keys(obj).includes(string)
  ) !== -1

console.log(contains('errorCode')) // returns true
console.log(contains('spaghetti')) // returns false


但是我想知道在
objArray
中errorCode的值是多少。例如,我想知道
errorCode:“500-001”
是否出现在
objArray
中。我怎样才能得到这个结果?有人可以推荐吗?

您可以使用
Array.prototype

var objArr=[
{
“7364234”:“hsjd”,
“错误代码”:“400”
},
{
“12345”:“jd”,
“错误代码”:“500-001”
}
];
const contains=(keyVal)=>objArr.some({errorCode})=>errorCode.includes(keyVal));

控制台日志(包含(“500”)循环遍历每个元素,并检查它是否包含要查找的代码:

function hasErrorCode( errorCode ) {
    var r = false; // assume
    objArr.forEach( function( o ) {
        if ( o.errorCode == errorCode ) {
            r = true;
        }
    } );
    return r;
}

console.log( hasErrorCode( '400' ) ); // true
console.log( hasErrorCode( 'asdfasdf' ) ); // false

使用标准的
for
循环,并在找到代码时使用
break
退出,可以提高效率。

欢迎使用SO!如果你只是扔掉索引,那么FYI
includes
findIndex
更好。