如何获得只有第一对象时,两个对象匹配的if语句
如何获得只有第一对象时,两个对象匹配的if语句
const cars = [{ \t brand: 'BMW',
\t year: '1997'
}, {
\t brand: 'BMW',
\t year: '2011'
}]
Object.keys(cars).forEach(function(x) {
\t if (cars[x].brand == "BMW") {
\t \t console.log(cars[x]);
\t }
});
如何CONSOLE.LOG阵列相匹配的品牌“宝马”的只有第一个对象? *它必须是与对象键
回答:
你可以拿Array#some
,如果发现一个品牌返回true
- 那么迭代停止。
const cars = [{ brand: 'BMW', year: '1997' }, { brand: 'BMW', year: '2011' }]; Object.keys(cars).some(function(x) {
if (cars[x].brand == "BMW") {
console.log(cars[x]);
return true;
}
});
回答:
用户array.find
的溶液中,将只返回第一匹配部件。
const cars = [{ \t brand: 'BMW',
\t year: '1997'
}, {
\t brand: 'BMW',
\t year: '2011'
}]
console.log(cars.find(car=>car.brand ==='BMW'));
编辑
因为你需要Object.Keys的解决方案,你可以使用array.some()
const cars = [{ \t brand: 'BMW',
\t year: '1997'
}, {
\t brand: 'BMW',
\t year: '2011'
}]
Object.keys(cars).some(function(ele) {
\t if (cars[ele].brand == "BMW") {
console.log(cars[ele]);
return true;
\t }
});
回答:
以上使用Array.prototype.find()
的答案绝对是你要找的。
但是,如果您在其他情况下遇到此问题:当您使用for循环并且想要尽早结束循环时,可以使用“break”关键字。
break关键字不适用于forEach
,但是您不应该使用forEach - 它具有较少的浏览器支持,并且比老式for循环要慢。
回答:
这将有助于你
var Exception = {}; const cars = [{
\t brand: 'BMW',
\t year: '1997'
}, {
\t brand: 'BMW',
\t year: '2011'
}]
try{
Object.keys(cars).forEach(function(x) {
\t if (cars[x].brand == "BMW") {
\t \t console.log(cars[x]);
throw Exception;
\t }
});
}catch(e){
if (e !== Exception) throw e;
}
回答:
可以使用Object.keys(cars).find(function)
象下面这样:
const cars = [{ \t brand: 'BMW',
\t year: '1997'
}, {
\t brand: 'BMW',
\t year: '2011'
}]
Object.keys(cars).find(function(x) {
if (cars[x].brand == "BMW") {
console.log(cars[x]);
return true;
}
});
以上是 如何获得只有第一对象时,两个对象匹配的if语句 的全部内容, 来源链接: utcz.com/qa/257353.html