Я пытаюсь изменить значение определенного элемента в хэш-таблице. Я могу сделать это, выполняя итерацию по всему объекту, проверяя каждый отдельный ключ на определенное значение, а затем изменяя его, если выполняется условие следующим образом:
for ($i=0; $i -le $haystack.length-1; $i++)
{
if ($haystack[$i].name -eq "needle")
{
$haystack[$i].currentstatus = "found"
}
}
Приведенный выше код работает, но, похоже, должен быть более эффективный способ решения этой задачи, особенно когда стог сена большой и в нем только одна игла.
Я попытался использовать where-object и смог найти нужную запись:
$haystack | where-object {$_.name -eq "needle"}
Это кажется намного лучше, чем поиск грубой силы, но я не знаю, как получить эту запись сейчас. Если бы у меня был индекс в массиве, я мог бы легко использовать его для редактирования нужного значения, так есть ли способ получить индекс массива? Как это обычно делается? Спасибо.