Javascript筛选器和映射,其中键值为true

By simon at 2018-02-28 • 0人收藏 • 32人看过

所以这是原始代码....

selectedProducts = {
  10529814:false,
  10813521:true
};

this.selectedProducts.forEach((selected, value) => {
  if(selected) {
    this.discussionMessage.productIds.push(value);
  }
});
我想用filter / map技术来重写它,这就是我所要做的 现在。
this.discussionMessage.productIds = this.selectedProducts.filter((selected, value) => selected)
  .map((product) => product);
但是不管我改变什么,我似乎都无法得到一份清单 产品ID的匹配值是t街道。

1 个回复 | 最后更新于 2018-02-28
2018-02-28   #1

您可以使用array#filter和Object.keys().迭代对象的每个键 selectedProducts并过滤那些99的值99999999114.

var selectedProducts = {10529814: false,10813521: true},
    result = Object.keys(selectedProducts).filter(k => selectedProducts[k]);
console.log(result);

登录后方可回帖

Loading...