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



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

export default class Widget {
public title: string;
public url: string;
public icon: string;
public id: string;
public defaultWidget: boolean;
  }

我有一个带有所有小部件的数组。当DefaultWidget为true时,我想从此数组中提取ID。

因此,当另一个属性(DefaultWidget(为true时,我想从此对象(ID(提取属性。到目前为止,我有:

const newArray = allWidgets.map(element => element.defaultWidget);

但是,它仅对它拥有的每个真实对象返回true。但是我希望它返回DefaultWidget为True的ID。

您可以使用过滤器获取带有defaultWidget === true的小部件,然后使用MAP获取ID。

filtermap都会创建新数组。

或者您可以尝试使用Reled构成所有内容。

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;
}, []);

const newarray = allwidgets.filter(obj => obj.defaultwidget(.map(obj => obj.id(;

上面的数组将为您提供ID的列表,其中 defaultWidget 是正确的。

此处过滤器将根据条件过滤数组,地图创建一个仅包含ID

的新数组

在JavaScript中您可以尝试此代码:returns list of ids if married = true

// Try edit msg
var emps = [
 {id: 1, name: "Employee1", married: true},
 {id: 2, name: "Employee1", married: false},
 {id: 3, name: "Employee1", married: true}
]
// getting list of ids of employees if married is true
var idList = emps.map(obj => {
  if (obj['married'] == true) {
    return obj.id 
  } 
})
// removing null values from list 
idList = idList.filter(ele => ele!=null);
console.log(idList);   
// output: [1, 3]

相关内容

  • 没有找到相关文章

最新更新