const cars = [{
brand: 'BMW',
year: '1997'
}, {
brand: 'BMW',
year: '2011'
}]
Object.keys(cars).forEach(function(x) {
if (cars[x].brand == "BMW") {
console.log(cars[x]);
}
});
Как мне console.log только первый объект массива соответствует бренду "BMW"? * Это должно быть решение с объектными ключами
Вы можете взять 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;
}
});
user array.find
, он вернет только первый соответствующий элемент.
const cars = [{
brand: 'BMW',
year: '1997'
}, {
brand: 'BMW',
year: '2011'
}]
console.log(cars.find(car=>car.brand ==='BMW'));
РЕДАКТИРОВАТЬ
Поскольку вам нужно решение с Object.Keys, вы можете использовать array.some()
const cars = [{
brand: 'BMW',
year: '1997'
}, {
brand: 'BMW',
year: '2011'
}]
Object.keys(cars).some(function(ele) {
if (cars[ele].brand == "BMW") {
console.log(cars[ele]);
return true;
}
});
Вышеупомянутый ответ использования Array.prototype.find()
определенно то, что вы ищете.
Однако, если вы столкнетесь с этой проблемой при других обстоятельствах: когда вы используете цикл for, и вы хотите закончить цикл раньше, вы можете использовать ключевое слово "break".
Ключевое слово break не работает с forEach
, однако вы не должны использовать forEach в любом случае - он имеет меньшую поддержку браузера и медленнее, чем старомодный цикл.
Array.prototype.find()
является решением, но вы советуете не использовать .forEach()
из-за его поддержки браузера? .forEach()
доступен в любом браузере, а .find()
нет
вы можете использовать Object.keys(cars).find(function)
как Object.keys(cars).find(function)
ниже:
const cars = [{
brand: 'BMW',
year: '1997'
}, {
brand: 'BMW',
year: '2011'
}]
Object.keys(cars).find(function(x) {
if (cars[x].brand == "BMW") {
console.log(cars[x]);
return true;
}
});
это будет полезно для вас
var Exception = {};
const cars = [{
brand: 'BMW',
year: '1997'
}, {
brand: 'BMW',
year: '2011'
}]
try{
Object.keys(cars).forEach(function(x) {
if (cars[x].brand == "BMW") {
console.log(cars[x]);
throw Exception;
}
});
}catch(e){
if (e !== Exception) throw e;
}
cars
это массив. Зачем вам использоватьObject.keys()
? Оо