PowerShell数组方法之Foreach()与Where()

 1 <#
 2 1.PowerShell Array.Foreach(...)的签名是:
 3 Array Foreach(expression[, arguments...])
 4 第一个参数通常是ScriptBlock类型或者类型符号(表示类型转换)
 5 第二个以后的参数可以有很多个,都将作为$args自动变量的元素,传递给第一个参数
 6
 7 2.PowerShell Array.Where(...)的签名是:
 8 Array Where({expression}[, mode[, numberToReturn]])
 9 mode=>[System.Management.Automation.WhereOperatorSelectionMode],默认值Default
10       【可以直接输入枚举名,PowerShell会自动转换,当然这是通用规则】
11 numberToReturn=>[int32],默认值0,表示返回所有匹配项
12 [System.Management.Automation.WhereOperatorSelectionMode]的所有枚举成员如下:
13 Default
14 Return all matches
15 返回所有匹配项
16 First
17 Stop processing after the first match.
18 返回最前的几个匹配项
19 Last
20 Return the last matching element
21 返回最后的几个匹配项
22 SkipUntil
23 Skip until the condition is true, then return the rest
24 忽略第一次匹配之前的所有项,并返回剩下的所有项,且包含第一匹配项
25 Split
26 Return an array of two elements, first index is matched elements, second index is the remaining elements.
27 返回一个只有两个元素的数组,第一个元素包含所有的匹配项,第二个元素包含所有的不匹配项
28 【此时参数numberToReturn只能决定匹配项的返回量,而因为numberToReturn而被抛弃的匹配项,将按在原数组中出现的顺序,被加入到不匹配项之中】
29 Until
30 Return elements until the condition is true then skip the rest
31 返回第一个匹配之前的所有元素,不包含第一个匹配项
32 #>
33 Write-Host 1.1.取得一个等差数列
34 (1..10).ForEach({ $args[0] * $_ - $args[1] }, 2, 1)
35 Write-Host 1.2.取得所有的大写字母
36 (65..90).ForEach([char])
37
38 Write-Host 2.1.筛选得到10以内的偶数
39 (1..10).Where({ $_ % 2 -eq 0 })
40 Write-Host 2.2.筛选得到10以内的偶数,但只取第一个
41 (1..10).Where({ $_ % 2 -eq 0 }, [System.Management.Automation.WhereOperatorSelectionMode]::First)
42 Write-Host 2.3.筛选得到10以内的偶数,但只取前三个
43 (1..10).Where({ $_ % 2 -eq 0 }, [System.Management.Automation.WhereOperatorSelectionMode]::First, 3)
44 Write-Host 2.4.筛选得到10以内的偶数,但只取最后一个
45 (1..10).Where({ $_ % 2 -eq 0 }, [System.Management.Automation.WhereOperatorSelectionMode]::Last)
46 Write-Host 2.5.筛选得到10以内的偶数,但只取最后三个
47 (1..10).Where({ $_ % 2 -eq 0 }, [System.Management.Automation.WhereOperatorSelectionMode]::Last, 3)
48 Write-Host 2.6.筛选得到10以内的第一个能被3整除的数之前的所有数字项
49 (1..10).Where({ $_ % 3 -eq 0 }, [System.Management.Automation.WhereOperatorSelectionMode]::Until)
50 Write-Host 2.7.筛选得到10以内的第一个能被3整除的数之前的所有数字项中的前3个数字
51 (1..10).Where({ $_ % 3 -eq 0 }, [System.Management.Automation.WhereOperatorSelectionMode]::Until, 3)
52 Write-Host 2.8.筛选得到10以内的第一个能被3整除的数之后的所有数字项,并包括第一个能被3整除的数字项
53 (1..10).Where({ $_ % 3 -eq 0 }, [System.Management.Automation.WhereOperatorSelectionMode]::SkipUntil)
54 Write-Host 2.9.筛选得到10以内的第一个能被3整除的数之后的所有数字项,并包括第一个能被3整除的数字项,但只取前3个数字
55 (1..10).Where({ $_ % 3 -eq 0 }, [System.Management.Automation.WhereOperatorSelectionMode]::SkipUntil, 3)
56 Write-Host 2.10.筛选以分别得到10以内的偶数与奇数项
57 (1..10).Where({ $_ % 2 -eq 0 }, [System.Management.Automation.WhereOperatorSelectionMode]::Split)
58 Write-Host 2.11.筛选以分别得到10以内的偶数与奇数项,并只取匹配项的前3个,其余的数字全返回到不匹配项中
59 (1..10).Where({ $_ % 2 -eq 0 }, [System.Management.Automation.WhereOperatorSelectionMode]::Split, 3)
60 Write-Host 2.12.筛选得到10以内的偶数的前3项
61 (1..10).Where({ $_ % 2 -eq 0 }, ‘default‘, 3)

原文地址:https://www.cnblogs.com/vitrox/p/9016692.html

时间: 2024-10-11 20:37:59

PowerShell数组方法之Foreach()与Where()的相关文章

js(3)——数组方法——函数——解构赋值

<JavaScript权威指南>读后笔记2 ---- 表达式与运算符 ---- 2018-04-23 目录 数组方法 函数:属性.方法.构造函数 const .let.var 解构赋值 1. 数组方法 join() reverse() sort() concat()  :a=[''ant','cat'];a.concat(4,3);  结果为:[ant,cat,4 ,3] slice(开始位置,结束位置-可选):索引从0开始:返回本身的值. splice() 1 // splice(插入或删除

一张图看懂JavaScript中数组的迭代方法:forEach、map、filter、reduce、every、some

好吧,竟然不能单发一张图,不够200字啊不够200字! 在<JavaScript高级程序设计>中,分门别类介绍了非常多数组方法,其中迭代方法里面有6种,这6种方法在实际项目有着非常广泛的作用.其中本人最爱用forEach和map,好用又高效,不用什么都是for循环大法.但是初学的时候往往觉得头大,这些方法都很像,到底有什么区别?趁着今天有空,我把对着6个方法的认知,用最浅显的图画出来,希望看到的同学觉得有用.

Javascript数组Array的forEach方法

Javascript数组Array的forEach扩展方法 forEach是最常用到的数组扩展方法之一,相当于参数化循环数组,它简单的在数组的每一个元素上应用传入的函数,这也意味着只有存在的元素会被访问和处理.  如果我们用console.log替换处理函数,将可以得到另外的有趣结果: [1,2,3,"csser"].forEach(console.log); 结果: 1, 0, Array[1, 2, 3, "csser"] 2, 1, Array[1, 2, 3

JavaScript数组方法的兼容性写法 汇总:indexOf()、forEach()、map()、filter()、some()、every()

ECMA Script5中数组方法如indexOf().forEach().map().filter().some()并不支持IE6-8,但是国内依然有一大部分用户使用IE6-8,而以上数组方法又确实非常好用.在过去,我会为了兼容性尽量不用这些方法.但是,总不能为了旧的丢了新的吧?!虽然说jQuery已经集成好了不少语法糖,但jQuery体积太庞大,作为一名志于体面的前端儿得知道原生的兼容性写法要怎么写.于是这几天,我开始在琢磨这些方法的兼容性写法.其实并不难,就是以前不够自信不敢写.写完以后,

JavaScript数组方法--flat、forEach、map

今天到flat了,一个第一次知道该方法还是看到一个面试题,别人给了个答案,用到了flat才知道的方法. 前面也写过关于这道面试题的文章,<一道关于数组的前端面试题>. 这里再来说说吧! flat:flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回.不考虑他所谓指定深度,直白一点来说,就是数组扁平化,也就是把一个有多层嵌套的数组,提取为一个只有一层的数组.同样,先看用法吧: var elements = ['Fire', 'Wind',

【js实例】Array类型的9个数组方法,Date类型的41个日期方法,Function类型

前文提要:[js实例]js中的5种基本数据类型和9种操作符 Array类型的9个数组方法 Array中有9个数组方法: 1.检测数组 2.转换方法 3.栈方法 4.队列方法 5.冲排序方法6.操作方法 7.位置方法 8.迭代方法 9.归并方法 在实例中介绍,实例如下 /* Array类型 js数组中的每一项可以用来保存任何类型的数据:js数组的大小是可以动态调整的 */ var colors = ["red", "blue", "green"];

ES5 对数组方法的扩展 以及 正则表达式

ES5 对数组的扩展 forEach map some every indexOf lastIndexOf forEach 与 map 语法: 数组.forEach(function ( v, i ) { }) 数组.map(function ( v, i ) {}) 1.   forEach 就是在模拟 jq 中 each 例:var arr = [ 11, 22, 33 ];        var res = arr.forEach(function ( v, i ) {          

HTML5数组方法

***************************** forEach方法 ***************************** ? <script>var data = [1,2,3,4];var sum = 0; // 计算数据元素的值data.forEach(function(_val){sum += _val;})console.log(sum); //每个数据元素的值加1data.forEach(function(_val,i,_arr){_arr[i] = _val+1;

js 数组方法总结

Array数组: length属性 可通过array.length增加或者减少数组的长度,如;array.length=4(数组长3,第四位为undefined),也可单纯获得长度.array[array.length]=''赋值. 检测数组 检测是否数组ES3  instanceof array  ES5新增的Array.isArray(),支持的IE9+,Opera 10.5+,Chrome,Safari5+. 一:原数组不变  [,start],表示0或1个参数 concat() 无参,返