javascript - 如果为 true,则从数组中的对象获取特定属性

标签 javascript reactjs typescript

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

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。

filtermap 都会创建新数组。

或者您可以尝试使用 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/

相关文章:

javascript - 在 React 类中的渲染之外指定变量

reactjs - 无法从 MUI 步进器中看到 StepContent,使用react

typescript - 是否有理由在类型和接口(interface)前使用 declare 关键字?

arrays - TypeScript - 数组 toString()

javascript - 回调与在另一个函数内部调用一个函数之间的区别

javascript - 如果已定义,为什么 Promise.all() 会触发 Array.prototype.then?

javascript - React Router 中同一组件的多个路径名

构造函数的 JavaScript prototype.constructor 属性不在规范中?

javascript - 删除 jQuery 悬停效果

javascript - React Hooks 动态输入