удалить каждый третий элемент в массиве PowerShell - PullRequest
0 голосов
/ 06 февраля 2012

У меня очень длинная строка, которую я копирую и вставляю из внешней программы в PowerShell.После его разделения (

$ variable = $ variable.split ("` n ")

) я получил массив, из которого я хочу удалить каждый третий элемент.Какой самый удобный способ сделать это?Я думал о цикле от

0 до $ variable.lenght () - 1

и проверял, можно ли разделить на три, но, может быть, есть другой способ?

Ответы [ 5 ]

2 голосов
/ 06 февраля 2012

$ new = for ($ i = 2; $ i -lt $ array.count; $ i + = 3) {$ array [$ i]}

Это начнется с 3-го элемента и получит каждый третий. Конвейерный вывод сохраняется в $ new.

2 голосов
/ 06 февраля 2012

Если вам нужно удалить значения любых 3 позиций (на основе 0: 2,5,8,11,14 и т. Д.) В массиве, используйте что-то вроде этого:

$newArray = @()
0..($variable.length) | % {
    if ((($_+1) % 3 ) -ne 0) {
        $newArray += $variable[$_]
    }
}
1 голос
/ 08 февраля 2012
$i = 0
$variable = $variable.split("`n") | ? {++$i % 3}
1 голос
/ 06 февраля 2012
$new_variable = $variable | foreach {$i=1} {if ($i++ %3){$_}}
0 голосов
/ 07 февраля 2012

Или

0..($variable.count-1) | foreach { if($_%3) {$variable[$_]} }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...