Нет необходимости в петле.На ум приходят три метода:
Array.prototype.some ()
Это самый точный ответ на ваш вопрос, то есть «проверь, существует ли что-то»,подразумевая результат bool.Это будет верно, если есть какие-либо объекты Magenic, иначе false:
let hasMagenicVendor = vendors.some( vendor => vendor['Name'] === 'Magenic' )
Array.prototype.filter ()
Это вернет массиввсе объекты Magenic, даже если есть только один (вернет одноэлементный массив):
let magenicVendors = vendors.filter( vendor => vendor['Name'] === 'Magenic' )
Если вы попытаетесь привести это к логическому значению, он не будет работать, как пустой массив(никаких «магических» объектов) все еще правдива.Так что просто используйте magenicVendors.length
в вашем условном выражении.
Array.prototype.find ()
Это вернет первый объект "Magenic" (или undefined
, еслиих нет):
let magenicVendor = vendors.find( vendor => vendor['Name'] === 'Magenic' );
Это приводит к булеву окей (любой объект правдивый, undefined
фальшивый).
Примечание: я используюvendor ["Name"] вместо vendor.Name из-за странного ввода имен свойств.
Примечание 2: Нет причин использовать свободное равенство (==) вместо строгого равенства (===), когдапроверка имени.