解析一个对象并为每个成员添加成员属性

发布于 2024-12-09 19:43:46 字数 395 浏览 1 评论 0原文

我有一个看起来像这样的对象,

Name      Number
----      ------
John      one
Major     two
Mars      one

我想遍历每个成员并检查 Number 并添加一个属性,最终它看起来像这样。

Name      Number     IsItOne
----      ------     -------
John      one        True
Major     two        False
Mars      one        True

到目前为止,我得到的是对对象进行 foreach 循环,但随后我有两个对象,据我所知,没有机会更改原始对象。

I have an object which looks for example like this

Name      Number
----      ------
John      one
Major     two
Mars      one

I want to go through each member and check on Number and add a property that in the end it looks like this.

Name      Number     IsItOne
----      ------     -------
John      one        True
Major     two        False
Mars      one        True

What I got so far is do a foreach loop through the object but then I have two objects and have no chance as far as I know to change the original object.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

怪我鬧 2024-12-16 19:43:46

只是另一个(较短的)版本:

$obj | add-member -type scriptproperty -name IsItOne -value {$this.Number -eq 'one'} -passthru

Just another (shorter) version:

$obj | add-member -type scriptproperty -name IsItOne -value {$this.Number -eq 'one'} -passthru
裸钻 2024-12-16 19:43:46

看起来就像您正在谈论一组具有属性 NameNumber 的对象。

如果是这样,你可以这样做:

$a | %{  $isitone = $false; if($_.Number -eq "one") {$isitone=$true} $_ | 
         add-member -Type noteproperty -name IsItOne -value $isitone  }

It seems to be like you are talking about a set of objects with properties Name and Number.

If so, you can do like this:

$a | %{  $isitone = $false; if($_.Number -eq "one") {$isitone=$true} $_ | 
         add-member -Type noteproperty -name IsItOne -value $isitone  }
他不在意 2024-12-16 19:43:46

这是一个可能的替代方案。

function new-stuff ($name, $number) {
    New-Object PSObject -Property @{name=$name; number=$number}
}

$(
    new-stuff John  one
    new-stuff Major two
    new-stuff Mars  one
) | ForEach { $_ | Add-Member -PassThru ScriptProperty IsItOne {$this.Number-eq"one"} }

Here is a possible alternative.

function new-stuff ($name, $number) {
    New-Object PSObject -Property @{name=$name; number=$number}
}

$(
    new-stuff John  one
    new-stuff Major two
    new-stuff Mars  one
) | ForEach { $_ | Add-Member -PassThru ScriptProperty IsItOne {$this.Number-eq"one"} }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文