gpt4 book ai didi

javascript - 从集合中的对象中提取属性值?

转载 作者:行者123 更新时间:2023-11-30 09:27:14 32 4
gpt4 key购买 nike

例如,SomeItem是一个对象的模型(将被建模为 Typescript 中的一个接口(interface),或者你可以想象如果我们在无类型的土地上有一个形式为 SomeItem 的项目。

假设我有一个 Set : mySet = new Set([{item: SomeItem, selected: true}, ...]) .

我想检查是否 itemA: SomeItem是否被选中。

最干净的方法是什么?

这没有用:

const isSelected = mySet.has({item: itemA, selected: true});

这也没有:

const isSelected = Array.from(mySet).includes({item: itemA, selected: true});

我假设以上两个不起作用,因为它试图通过引用而不是值来比较对象。

这确实有效:

let isSelected: boolean;
mySet.forEach(state => {
if (state.item === itemA) {
isSelected = state.selected;
}
});

但我的直觉告诉我有一个正确的方法可以做到这一点。

所以,如何提取 Set 中对象的属性值?

最佳答案

只有当它们具有相同的引用时,比较具有相同属性的两个对象才返回 true,我建议比较它们的属性,因为属性是原始值..

数组some方法可以用来过滤集合中是否包含特定对象

let mySet = new Set([{item: 'SomeItem', selected: true}]);
let itemA = "SomeItem";
let isSelected = Array.from(mySet).some(element => element.item === itemA);
console.log(isSelected);

关于javascript - 从集合中的对象中提取属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48667436/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com