Использование some
является лучшим подходом для этого, оно остановится, как только что-то найдет. для больших массивов это будет улучшение:)
products = [
{id: 'pdc', code: '123456', name: 'pompa'},
{id: 'kbr', code: '2365', name: 'kit kbr'},
{id: 'boiler', code: '23165', name: 'VPB'}
];
const result = products.some(product => Object.keys(product).some(key => product[key].includes('kbr')))
console.log(result)
With
считается многими одной из тех функций языка, которая падает в "просто, потому что у Вас есть она, не означает, что необходимо использовать ее" категория. Существует очень немного случаев, где я дал бы ему квартиру - я нашел один или два случая, где это - использование, важно при использовании чрезвычайно сложных многоуровневых структур, где компилятор не делает вполне, как Вы ожидали бы без него, и легче включать, но за 10 лет кодирования Delphi, я думаю, что они могли пересчитаться по пальцам одной руки.
Это действительно имеет тенденцию привыкать слишком много в примерах, поскольку код, конечно, выглядит более чистым, но на практике влияние обслуживания выяснения, если переменная проста или часть структуры при рассмотрении кода, Вы не записали или не использовали в течение периода, легко перевешивает это. Известными проблемами с отладчиком на каждой версии Delphi, который я когда-либо использовал, является решающий довод.
Отладчик не может установить связь между переменной, показанной в исходном коде, который Вы хотите исследовать и связанный с оператором, когда Вы наведение мыши переменная. Необходимо будет исследовать значения в окне часов отладки и указать полную переменную там, например, MyNumber. Цифра.
Я использую С.. сделайте редко и будьте склонны делать как это
var
Sc : TE_Type;
begin
Sc := A.B.C.D.E;
sc.Method1;
sc.Method2;
sc.Method3;
sc.Method4;
sc.Method5;
sc.Method6;
end;
Конечно, достойное название кв/см не причинит боль. И я думаю, что это более ясно, чем с.. сделайте и отладчик оказывается намного лучше. Так, мне нравится много того 'ярлыка' переменные.
"С" представляет неоднозначности и может вызвать больше проблем, чем это решает. Рассмотрите просто не использование его.
Источник вдохновения имеет рефакторинг, который помогает удалить их.
Я полностью убежден, что страшное "с" пунктом было включено просто, так закажите устройства записи, не должен был иметь всех тех ужасных строк TWinComponent в их примере кода. В реальной жизни, за пределами фрагментов кода и учебников, нет почти никакого серьезного основания использовать "с".
Основная причина, она повреждает отладчик. Это было бы очень непрактично, чтобы отладчик оценил все пункты при нахождении значения переменной, таким образом, не ошибка, ее просто неподдерживаемый во всех отладчиках Дельфи я знаю о. Если Вы похожи на меня, застрявшее поддержание сотни тысяч строк от программиста, который в основном скопировал все из учебника, он делает отладку живущего ада.
Нижняя строка, не ИСПОЛЬЗУЙТЕ С ПУНКТАМИ... КОГДА-ЛИБО!
Проблемы отладки с с оператором известны. Это - одна из причин, я удаляю их, когда я вижу их. По-моему, Вы никогда не должны улучшать скорость кодирования за счет пригодности для обслуживания.
Общая конструкция я вижу много (и изученный для ненависти):
with TMyObject.Create do
try
Method1(blah, blah, blah);
Method2(blah, blah, blah);
finally
Free;
end;
Даже возможно включить больше конструкций с оператором:
with A, B, C, D do
// Aargh!
Но с другой стороны, иногда существует допустимое использование для с оператором, если можно заменить:
A.B.C.D.E.Method1;
A.B.C.D.E.Method2;
A.B.C.D.E.Method3;
A.B.C.D.E.Method4;
A.B.C.D.E.Method5;
A.B.C.D.E.Method6;
С
with A.B.C.D.E do begin
Method1;
Method2;
Method3;
Method4;
Method5;
Method6;
end;
Хотя использование A.B.C.D.E
немного сомнительно, это имеет тенденцию быть "Дельфи путь". Но теперь с помощниками класса, у нас может быть совершенно допустимое решение:
TAHelper = class helper for TA
public
procedure Method1;
endl
procedure TAHelper.Method1;
begin
// You can (should) add sanity checks here.
B.C.D.E.Method1;
end;
Таким образом, теперь можно использовать:
A.Method1;
Который намного лучше, по-моему.
С оператором синтаксический NutraSweet: Это является на вкус много как синтаксический сахар, но оставляет плохой остаточный вкус и, оказывается, на самом деле вредно в долгосрочной перспективе. Лучше просто не использовать его.
С это совсем не плохая практика. Плохо только то, что вы не можете легко отладить эти строки, но если вы используете их осторожно, проблем не возникнет. Может быть, это не очень хорошая практика для юниоров, но если вы знаете, где ее использовать, все в порядке.
Позвольте EMBA улучшить его любым способом, чтобы избежать распространенной тирады по этому поводу.