我有一个看起来像这样的对象:
export default class Widget {
public title: string;
public url: string;
public icon: string;
public id: string;
public defaultWidget: boolean;
}
我有一个包含所有小部件的数组,allWidgets。当 defaultWidget 为 true 时,我想从该数组中提取 id。
所以当另一个属性(defaultWidget)为true时,我想从这个对象(id)中提取一个属性。到目前为止我已经:
const newArray = allWidgets.map(element => element.defaultWidget);
但是,它仅对其拥有的每个 true 对象返回 true。但我希望它返回 defaultWidget 为 true 的 ID。
最佳答案
您可以使用filter使用 defaultWidget === true
获取小部件,然后使用 map获取 id。
filter
和 map
都会创建新数组。
或者您可以尝试使用 reduce组成所有内容。
如果是reduce
,您将创建一次新数组。
const newArray = allWidgets.filter(widget => widget.defaultWidget).map(widget => widget.id)
// or
const newArray = allWidgets.reduce((acc, elem) => {
if (elem.defaultWidget) {
acc.push(elem.id);
}
return acc;
}, []);
关于javascript - 如果为 true,则从数组中的对象获取特定属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56129736/