如何获得只有第一对象时,两个对象匹配的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

回到顶部