在对象数组中查找属性值(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!如果你只是扔掉索引,那么FYIincludes
比findIndex
更好。